Store identity trust locally, make it updatable from outside.
[Sone.git] / src / main / java / net / pterodactylus / sone / freenet / wot / DefaultOwnIdentity.java
index ab96756..6acdd70 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Sone - DefaultOwnIdentity.java - Copyright © 2010 David Roden
+ * Sone - DefaultOwnIdentity.java - Copyright © 2010–2012 David Roden
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -57,6 +57,22 @@ public class DefaultOwnIdentity extends DefaultIdentity implements OwnIdentity {
                this.insertUri = insertUri;
        }
 
+       /**
+        * Copy constructor for an own identity.
+        *
+        * @param webOfTrustConnector
+        *            The web of trust connector
+        * @param ownIdentity
+        *            The own identity to copy
+        */
+       public DefaultOwnIdentity(WebOfTrustConnector webOfTrustConnector, OwnIdentity ownIdentity) {
+               super(webOfTrustConnector, ownIdentity.getId(), ownIdentity.getNickname(), ownIdentity.getRequestUri());
+               this.webOfTrustConnector = webOfTrustConnector;
+               this.insertUri = ownIdentity.getInsertUri();
+               setContextsPrivate(ownIdentity.getContexts());
+               setPropertiesPrivate(ownIdentity.getProperties());
+       }
+
        //
        // ACCESSORS
        //
@@ -151,7 +167,7 @@ public class DefaultOwnIdentity extends DefaultIdentity implements OwnIdentity {
                Validation.begin().isNotNull("Trust Target", target).isNotNull("Trust Comment", comment).isLessOrEqual("Trust Value", trustValue, 100).isGreaterOrEqual("Trust Value", trustValue, -100).check();
                webOfTrustConnector.setTrust(this, target, trustValue, comment);
                if (target instanceof DefaultIdentity) {
-                       ((DefaultIdentity) target).setTrustPrivate(this, new Trust(trustValue, trustValue, 0));
+                       ((DefaultIdentity) target).setTrust(this, new Trust(trustValue, trustValue, 0));
                }
        }
 
@@ -163,8 +179,30 @@ public class DefaultOwnIdentity extends DefaultIdentity implements OwnIdentity {
                Validation.begin().isNotNull("Trust Target", target).check();
                webOfTrustConnector.removeTrust(this, target);
                if (target instanceof DefaultIdentity) {
-                       ((DefaultIdentity) target).setTrustPrivate(this, new Trust(null, null, null));
+                       ((DefaultIdentity) target).setTrust(this, new Trust(null, null, null));
                }
        }
 
+       //
+       // OBJECT METHODS
+       //
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public int hashCode() {
+               /* The hash of DefaultIdentity is fine. */
+               return super.hashCode();
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       @Override
+       public boolean equals(Object object) {
+               /* The ID of the superclass is still enough. */
+               return super.equals(object);
+       }
+
 }