X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=90fc3142ac0b86ef9e3567cf0d3b97d9ef0329e9;hb=9359e98d853739ec57c24ef0ff2d69c8ce29847d;hp=fe0907fe6dff0c258f68c6eb1c8e23dbebf4ede1;hpb=7a858fcaa81f9cfab771e42865c0c2da6a438c40;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 fe0907f..90fc314 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -27,6 +27,7 @@ import static java.util.logging.Logger.getLogger; import java.util.ArrayList; import java.util.Collection; +import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -154,6 +155,8 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, /** The trust updater. */ private final WebOfTrustUpdater webOfTrustUpdater; + private final Set compatibilityModes = EnumSet.noneOf(CompatibilityMode.class); + /** The times Sones were followed. */ private final Map soneFollowingTimes = new HashMap(); @@ -273,6 +276,18 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, return updateChecker; } + public boolean isCompatibilityMode(CompatibilityMode compatibilityMode) { + return compatibilityModes.contains(compatibilityMode); + } + + public void setCompatibilityMode(CompatibilityMode compatibilityMode) { + compatibilityModes.add(compatibilityMode); + } + + public void clearCompatibilityMod(CompatibilityMode compatibilityMode) { + compatibilityModes.remove(compatibilityMode); + } + /** * Returns the Sone rescuer for the given local Sone. * @@ -651,6 +666,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, soneInserters.put(sone, soneInserter); } loadSone(sone); + database.storeSone(sone); sone.setStatus(SoneStatus.idle); soneInserter.start(); return sone; @@ -1085,7 +1101,6 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, for (Album album : topLevelAlbums) { sone.getRootAlbum().addAlbum(album); } - database.storeSone(sone); synchronized (soneInserters) { soneInserters.get(sone).setLastInsertFingerprint(lastInsertFingerprint); } @@ -1476,7 +1491,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, int postCounter = 0; for (Post post : sone.getPosts()) { String postPrefix = sonePrefix + "/Posts/" + postCounter++; - configuration.getStringValue(postPrefix + "/ID").setValue(post.getId()); + configuration.getStringValue(postPrefix + "/ID").setValue(post.getInternalId()); configuration.getStringValue(postPrefix + "/Recipient").setValue(post.getRecipientId().orNull()); configuration.getLongValue(postPrefix + "/Time").setValue(post.getTime()); configuration.getStringValue(postPrefix + "/Text").setValue(post.getText()); @@ -1514,7 +1529,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, int albumCounter = 0; for (Album album : albums) { String albumPrefix = sonePrefix + "/Albums/" + albumCounter++; - configuration.getStringValue(albumPrefix + "/ID").setValue(album.getId()); + configuration.getStringValue(albumPrefix + "/ID").setValue(album.getInternalId()); configuration.getStringValue(albumPrefix + "/Title").setValue(album.getTitle()); configuration.getStringValue(albumPrefix + "/Description").setValue(album.getDescription()); configuration.getStringValue(albumPrefix + "/Parent").setValue(album.getParent().equals(sone.getRootAlbum()) ? null : album.getParent().getId()); @@ -1530,8 +1545,8 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, continue; } String imagePrefix = sonePrefix + "/Images/" + imageCounter++; - configuration.getStringValue(imagePrefix + "/ID").setValue(image.getId()); - configuration.getStringValue(imagePrefix + "/Album").setValue(album.getId()); + configuration.getStringValue(imagePrefix + "/ID").setValue(image.getInternalId()); + configuration.getStringValue(imagePrefix + "/Album").setValue(album.getInternalId()); configuration.getStringValue(imagePrefix + "/Key").setValue(image.getKey()); configuration.getStringValue(imagePrefix + "/Title").setValue(image.getTitle()); configuration.getStringValue(imagePrefix + "/Description").setValue(image.getDescription());