X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FMemoryDatabase.java;h=7ad40e0e36799f943975a610efc5ce5e51fb8700;hb=3049b7e396ce20b5b6600ae2791334a6babb414e;hp=12ef439f762b3552d97c8271cf6b6b4483119df7;hpb=01e42c8c266e17a2c03f7c571478d816e12cc5e5;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java index 12ef439..7ad40e0 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java +++ b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java @@ -173,14 +173,14 @@ public class MemoryDatabase extends AbstractService implements Database { } @Override - public Sone registerLocalSone(OwnIdentity ownIdentity) { - final Sone localSone = loadLocalSone(ownIdentity); + public LocalSone registerLocalSone(OwnIdentity ownIdentity) { + final LocalSone localSone = loadLocalSone(ownIdentity); localSones.add(ownIdentity.getId()); return localSone; } - private Sone loadLocalSone(OwnIdentity ownIdentity) { - Sone localSone = newSoneBuilder().local().from(ownIdentity).build(); + private LocalSone loadLocalSone(OwnIdentity ownIdentity) { + LocalSone localSone = (LocalSone) newSoneBuilder().local().from(ownIdentity).build(); localSone.setLatestEdition( Optional.fromNullable( Longs.tryParse(ownIdentity.getProperty(LATEST_EDITION_PROPERTY))) @@ -192,7 +192,7 @@ public class MemoryDatabase extends AbstractService implements Database { return localSone; } - public void loadSone(Sone sone) { + public void loadSone(LocalSone sone) { long soneTime = configurationLoader.getLocalSoneTime(sone.getId()); if (soneTime == -1) { return; @@ -583,10 +583,16 @@ public class MemoryDatabase extends AbstractService implements Database { } @Override - public Collection getLocalSones() { + public Collection getLocalSones() { lock.readLock().lock(); try { - return from(allSones.values()).filter(LOCAL_SONE_FILTER).toSet(); + return from(allSones.values()).filter(LOCAL_SONE_FILTER).transform(new Function() { + @Override + public LocalSone apply(Sone sone) { + // FIXME – Sones will not always implement LocalSone + return (LocalSone) sone; + } + }).toSet(); } finally { lock.readLock().unlock(); }