Add method to expose a Sone loader.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index 0f22b81..8e6f1b0 100644 (file)
@@ -97,6 +97,7 @@ import net.pterodactylus.util.number.Numbers;
 import net.pterodactylus.util.service.AbstractService;
 import net.pterodactylus.util.thread.NamedThreadFactory;
 
+import com.google.common.base.Function;
 import freenet.keys.FreenetURI;
 
 import com.google.common.base.Optional;
@@ -330,6 +331,11 @@ public class Core extends AbstractService implements SoneProvider {
        }
 
        @Override
+       public Function<String, Optional<Sone>> getSone() {
+               return database.getSone();
+       }
+
+       @Override
        public Optional<Sone> getSone(String id) {
                synchronized (sones) {
                        return Optional.fromNullable(sones.get(id));
@@ -965,7 +971,7 @@ public class Core extends AbstractService implements SoneProvider {
                                break;
                        }
                        String fieldValue = configuration.getStringValue(fieldPrefix + "/Value").getValue("");
-                       profile.addField(fieldName).setValue(fieldValue);
+                       profile.setField(profile.addField(fieldName), fieldValue);
                }
 
                /* load posts. */
@@ -1094,7 +1100,7 @@ public class Core extends AbstractService implements SoneProvider {
                /* load avatar. */
                String avatarId = configuration.getStringValue(sonePrefix + "/Profile/Avatar").getValue(null);
                if (avatarId != null) {
-                       profile.setAvatar(getImage(avatarId).orNull());
+                       profile.setAvatar(getImage(avatarId).transform(GET_ID));
                }
 
                /* load options. */