X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FSoneAccessor.java;h=ac4ab2850e6c18c31658c030a5db293d5661d655;hb=7edffb4478bdeae16b009bced9d6769d0cb50a3b;hp=c4eac6c73cae5d43062ecf10ae0651381111ee5e;hpb=4c01b14af989a2831212ed79410ed723ba334c4a;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java b/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java index c4eac6c..ac4ab28 100644 --- a/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java +++ b/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java @@ -17,10 +17,15 @@ package net.pterodactylus.sone.template; +import java.util.logging.Level; +import java.util.logging.Logger; + import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.core.Core.SoneStatus; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Sone; +import net.pterodactylus.sone.freenet.wot.Trust; +import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.template.Accessor; import net.pterodactylus.util.template.DataProvider; import net.pterodactylus.util.template.ReflectionAccessor; @@ -44,6 +49,9 @@ import net.pterodactylus.util.template.ReflectionAccessor; */ public class SoneAccessor extends ReflectionAccessor { + /** The logger. */ + private static final Logger logger = Logging.getLogger(SoneAccessor.class); + /** The core. */ private final Core core; @@ -68,10 +76,10 @@ public class SoneAccessor extends ReflectionAccessor { } else if (member.equals("local")) { return sone.getInsertUri() != null; } else if (member.equals("friend")) { - Sone currentSone = (Sone) dataProvider.getData("currentSone"); + Sone currentSone = (Sone) dataProvider.get("currentSone"); return (currentSone != null) && currentSone.hasFriend(sone.getId()); } else if (member.equals("current")) { - Sone currentSone = (Sone) dataProvider.getData("currentSone"); + Sone currentSone = (Sone) dataProvider.get("currentSone"); return (currentSone != null) && currentSone.equals(sone); } else if (member.equals("modified")) { return core.isModifiedSone(sone); @@ -86,12 +94,20 @@ public class SoneAccessor extends ReflectionAccessor { } else if (member.equals("downloading")) { return core.getSoneStatus(sone) == SoneStatus.downloading; } else if (member.equals("new")) { - return core.isNewSone(sone); + return core.isNewSone(sone.getId(), false); } else if (member.equals("locked")) { return core.isLocked(sone); } else if (member.equals("trust")) { - Sone currentSone = (Sone) dataProvider.getData("currentSone"); - return core.getTrust(currentSone, sone); + Sone currentSone = (Sone) dataProvider.get("currentSone"); + if (currentSone == null) { + return null; + } + Trust trust = core.getTrust(currentSone, sone); + logger.log(Level.FINEST, "Trust for %s by %s: %s", new Object[] { sone, currentSone, trust }); + if (trust == null) { + return new Trust(null, null, null); + } + return trust; } return super.get(dataProvider, object, member); }