Author: xor Date: 2008-11-08 01:55:23 +0000 (Sat, 08 Nov 2008) New Revision: 23407
Modified: trunk/plugins/Freetalk/FTIdentity.java trunk/plugins/Freetalk/FTOwnIdentity.java trunk/plugins/Freetalk/WoT/FTIdentityWoT.java trunk/plugins/Freetalk/WoT/FTOwnIdentityWoT.java trunk/plugins/Freetalk/ui/IdentityEditor.java Log: Refactor: We now duplicate data from WoT. Storing references to WoT objects (i.e. identities) is a bad idea. Modified: trunk/plugins/Freetalk/FTIdentity.java =================================================================== --- trunk/plugins/Freetalk/FTIdentity.java 2008-11-08 01:54:23 UTC (rev 23406) +++ trunk/plugins/Freetalk/FTIdentity.java 2008-11-08 01:55:23 UTC (rev 23407) @@ -3,24 +3,16 @@ * http://www.gnu.org/ for further details of the GPL. */ package plugins.Freetalk; -import java.util.Date; -import java.util.Iterator; - import freenet.keys.FreenetURI; public interface FTIdentity { + public String getUID(); + /** * @return The requestURI ({@link FreenetURI}) to fetch this Identity */ public FreenetURI getRequestURI(); - public String getNickName(); - - public Date getLastChange(); - - /** - * @return Whether this Identity publishes its trustList or not - */ - public boolean doesPublishTrustList(); + public String getNickname(); } Modified: trunk/plugins/Freetalk/FTOwnIdentity.java =================================================================== --- trunk/plugins/Freetalk/FTOwnIdentity.java 2008-11-08 01:54:23 UTC (rev 23406) +++ trunk/plugins/Freetalk/FTOwnIdentity.java 2008-11-08 01:55:23 UTC (rev 23407) @@ -15,8 +15,6 @@ public interface FTOwnIdentity extends FTIdentity { public FreenetURI getInsertURI(); - - public Date getLastInsert(); public boolean wantsMessagesFrom(FTIdentity identity); Modified: trunk/plugins/Freetalk/WoT/FTIdentityWoT.java =================================================================== --- trunk/plugins/Freetalk/WoT/FTIdentityWoT.java 2008-11-08 01:54:23 UTC (rev 23406) +++ trunk/plugins/Freetalk/WoT/FTIdentityWoT.java 2008-11-08 01:55:23 UTC (rev 23407) @@ -8,6 +8,7 @@ import com.db4o.ObjectContainer; import freenet.keys.FreenetURI; +import freenet.support.SimpleFieldSet; import plugins.Freetalk.FTIdentity; import plugins.WoT.Identity; @@ -18,9 +19,13 @@ */ public class FTIdentityWoT implements FTIdentity { - protected final ObjectContainer db; + private final ObjectContainer db; - protected final Identity mIdentity; + private final String mUID; + /** The requestURI used to fetch this identity from Freenet */ + private final FreenetURI mRequestURI; + /** The nickname of this Identity */ + private final String mNickname; /** * Used for garbage collecting old identities which are not returned by the WoT plugin anymore. @@ -33,29 +38,30 @@ */ private boolean mIsNeeded; - public FTIdentityWoT(ObjectContainer myDB, Identity myIndentity) { + public FTIdentityWoT(ObjectContainer myDB, String myUID, FreenetURI myRequestURI, String myNickname) { + if(myUID == null || myUID.length() == 0 || myRequestURI == null || myNickname == null || myNickname.length() == 0) + throw new IllegalArgumentException(); + db = myDB; - mIdentity = myIndentity; + mUID = myUID; + mRequestURI = myRequestURI; + mNickname = myNickname; mLastReceivedFromWoT = System.currentTimeMillis(); mIsNeeded = false; } - - public synchronized boolean doesPublishTrustList() { - return mIdentity.doesPublishTrustList(); + + public String getUID() { + return mUID; } - public synchronized Date getLastChange() { - return mIdentity.getLastChange(); + public FreenetURI getRequestURI() { + return mRequestURI; } - public synchronized String getNickName() { - return mIdentity.getNickName(); + public String getNickname() { + return mNickname; } - public synchronized FreenetURI getRequestURI() { - return mIdentity.getRequestURI(); - } - public synchronized long getLastReceivedFromWoT() { return mLastReceivedFromWoT; } @@ -77,5 +83,4 @@ db.store(this); db.commit(); } - } Modified: trunk/plugins/Freetalk/WoT/FTOwnIdentityWoT.java =================================================================== --- trunk/plugins/Freetalk/WoT/FTOwnIdentityWoT.java 2008-11-08 01:54:23 UTC (rev 23406) +++ trunk/plugins/Freetalk/WoT/FTOwnIdentityWoT.java 2008-11-08 01:55:23 UTC (rev 23407) @@ -24,22 +24,19 @@ private final LinkedList<FTBoard> mSubscribedBoards = new LinkedList<FTBoard>(); - public FTOwnIdentityWoT(ObjectContainer myDB, OwnIdentity newIndentity) { - super(myDB, newIndentity); - } + private final FreenetURI mInsertURI; - protected OwnIdentity getOwnIdentity() { - return (OwnIdentity)mIdentity; + public FTOwnIdentityWoT(ObjectContainer myDB, String myUID, FreenetURI myRequestURI, FreenetURI myInsertURI, String myNickname) { + super(myDB, myUID, myRequestURI, myNickname); + if(myInsertURI == null) + throw new IllegalArgumentException(); + mInsertURI = myInsertURI; } - + public FreenetURI getInsertURI() { - return getOwnIdentity().getInsertURI(); + return mInsertURI; } - public synchronized Date getLastInsert() { - return getOwnIdentity().getLastInsert(); - } - public synchronized void postMessage(FTMessage message) { // TODO Auto-generated method stub Modified: trunk/plugins/Freetalk/ui/IdentityEditor.java =================================================================== --- trunk/plugins/Freetalk/ui/IdentityEditor.java 2008-11-08 01:54:23 UTC (rev 23406) +++ trunk/plugins/Freetalk/ui/IdentityEditor.java 2008-11-08 01:55:23 UTC (rev 23407) @@ -47,11 +47,12 @@ while (ownIdentities.hasNext()) { FTOwnIdentity id = ownIdentities.next(); row = identitiesTable.addChild("tr"); - row.addChild("td", id.getNickName()); + row.addChild("td", id.getNickname()); row.addChild("td", new String[]{"title"}, new String[]{id.getRequestURI().toACIIString()}, id.getRequestURI().toACIIString().substring(0, 35)+"..."); row.addChild("td", new String[]{"title"}, new String[]{id.getInsertURI().toACIIString()}, id.getInsertURI().toACIIString().substring(0, 15)+"..."); - row.addChild("td", id.doesPublishTrustList()?"yes":"no"); + /* row.addChild("td", id.doesPublishTrustList()?"yes":"no"); */ HTMLNode lastUpdateCell = row.addChild("td"); + /* if (id.getLastInsert() == null) { lastUpdateCell.addChild("p", "Insert in progress..."); } else if (id.getLastInsert().equals(new Date(0))) { @@ -59,6 +60,7 @@ } else { lastUpdateCell.addChild(new HTMLNode("a", "href", "/" + id.getRequestURI().toString(), id.getLastInsert().toString())); } + */ HTMLNode deleteCell = row.addChild("td"); HTMLNode deleteForm = ft.pr.addFormChild(deleteCell, Freetalk.PLUGIN_URI + "/deleteOwnIdentity", "deleteForm"); deleteForm.addChild("input", new String[] { "type", "name", "value" }, new String[] { "hidden", "identity", id.getRequestURI().toACIIString()}); @@ -187,7 +189,7 @@ if (id instanceof FTOwnIdentity) continue; row = identitiesTable.addChild("tr"); - row.addChild("td", id.getNickName()); + row.addChild("td", id.getNickname()); row.addChild("td", id.getRequestURI().toACIIString()); HTMLNode deleteCell = row.addChild("td"); HTMLNode deleteForm = ft.pr.addFormChild(deleteCell, Freetalk.PLUGIN_URI + "/deleteIdentity", "deleteForm");
