X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=ca278dde76ec5901eea13a7c79c71a91bc2b6390;hb=625d29060bba56be82e5d34890b5278eeff104c0;hp=4be02f62e8ad30887fafa38cc501d6dfd0ebe523;hpb=8b9c6e55b8509e4651ceca3b052f201739623213;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 4be02f6..ca278dd 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -29,6 +29,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import net.pterodactylus.sone.core.SoneException.Type; +import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.util.config.Configuration; import net.pterodactylus.util.config.ConfigurationException; @@ -116,7 +117,7 @@ public class Core extends AbstractService { */ public void addSone(Sone sone) { if (localSones.add(sone)) { - SoneInserter soneInserter = new SoneInserter(sone); + SoneInserter soneInserter = new SoneInserter(freenetInterface, sone); soneInserter.start(); soneInserters.put(sone, soneInserter); } @@ -170,6 +171,9 @@ public class Core extends AbstractService { try { logger.log(Level.FINEST, "Creating new Sone “%s” at %s (%s)…", new Object[] { name, finalRequestUri, finalInsertUri }); sone = new Sone(UUID.randomUUID(), name, new FreenetURI(finalRequestUri), new FreenetURI(finalInsertUri)); + sone.setProfile(new Profile()); + /* set modification counter to 1 so it is inserted immediately. */ + sone.setModificationCounter(1); addSone(sone); } catch (MalformedURLException mue1) { throw new SoneException(Type.INVALID_URI); @@ -243,8 +247,19 @@ public class Core extends AbstractService { String id = configuration.getStringValue("Sone/Name." + soneName + "/ID").getValue(null); String insertUri = configuration.getStringValue("Sone/Name." + soneName + "/InsertURI").getValue(null); String requestUri = configuration.getStringValue("Sone/Name." + soneName + "/RequestURI").getValue(null); + long modificationCounter = configuration.getLongValue("Sone/Name." + soneName + "/ModificationCounter").getValue((long) 0); + String firstName = configuration.getStringValue("Sone/Name." + soneName + "/Profile/FirstName").getValue(null); + String middleName = configuration.getStringValue("Sone/Name." + soneName + "/Profile/MiddleName").getValue(null); + String lastName = configuration.getStringValue("Sone/Name." + soneName + "/Profile/LastName").getValue(null); try { - addSone(new Sone(UUID.fromString(id), soneName, new FreenetURI(requestUri), new FreenetURI(insertUri))); + Profile profile = new Profile(); + profile.setFirstName(firstName); + profile.setMiddleName(middleName); + profile.setLastName(lastName); + Sone sone = new Sone(UUID.fromString(id), soneName, new FreenetURI(requestUri), new FreenetURI(insertUri)); + sone.setProfile(profile); + sone.setModificationCounter(modificationCounter); + addSone(sone); } catch (MalformedURLException mue1) { logger.log(Level.WARNING, "Could not create Sone from requestUri (“" + requestUri + "”) and insertUri (“" + insertUri + "”)!", mue1); } @@ -275,6 +290,11 @@ public class Core extends AbstractService { configuration.getStringValue("Sone/Name." + sone.getName() + "/ID").setValue(sone.getId()); configuration.getStringValue("Sone/Name." + sone.getName() + "/RequestURI").setValue(sone.getRequestUri().toString()); configuration.getStringValue("Sone/Name." + sone.getName() + "/InsertURI").setValue(sone.getInsertUri().toString()); + configuration.getLongValue("Sone/Name." + sone.getName() + "/ModificationCounter").setValue(sone.getModificationCounter()); + Profile profile = sone.getProfile(); + configuration.getStringValue("Sone/Name." + sone.getName() + "/Profile/FirstName").setValue(profile.getFirstName()); + configuration.getStringValue("Sone/Name." + sone.getName() + "/Profile/MiddleName").setValue(profile.getMiddleName()); + configuration.getStringValue("Sone/Name." + sone.getName() + "/Profile/LastName").setValue(profile.getLastName()); } } catch (ConfigurationException ce1) { logger.log(Level.WARNING, "Could not store configuration!", ce1);