Require that truster and trustee are always non-null.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / WebOfTrustUpdater.java
index 9bd475a..2ed3487 100644 (file)
@@ -259,7 +259,8 @@ public class WebOfTrustUpdater extends AbstractService {
         *
         * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
         */
-       private class WebOfTrustUpdateJob {
+       @VisibleForTesting
+       class WebOfTrustUpdateJob implements Runnable {
 
                /** Object for synchronization. */
                @SuppressWarnings("hiding")
@@ -280,6 +281,7 @@ public class WebOfTrustUpdater extends AbstractService {
                 * <p/>
                 * The implementation of this class does nothing.
                 */
+               @Override
                public void run() {
                        /* does nothing. */
                }
@@ -358,8 +360,8 @@ public class WebOfTrustUpdater extends AbstractService {
                 *              The comment of the trust relation
                 */
                public SetTrustJob(OwnIdentity truster, Identity trustee, Integer score, String comment) {
-                       this.truster = truster;
-                       this.trustee = trustee;
+                       this.truster = checkNotNull(truster, "truster must not be null");
+                       this.trustee = checkNotNull(trustee, "trustee must not be null");
                        this.score = score;
                        this.comment = comment;
                }
@@ -370,14 +372,10 @@ public class WebOfTrustUpdater extends AbstractService {
                public void run() {
                        try {
                                if (score != null) {
-                                       if (trustee instanceof DefaultIdentity) {
-                                               ((DefaultIdentity) trustee).setTrust(truster, new Trust(score, null, 0));
-                                       }
+                                       trustee.setTrust(truster, new Trust(score, null, 0));
                                        webOfTrustConnector.setTrust(truster, trustee, score, comment);
                                } else {
-                                       if (trustee instanceof DefaultIdentity) {
-                                               ((DefaultIdentity) trustee).setTrust(truster, null);
-                                       }
+                                       trustee.removeTrust(truster);
                                        webOfTrustConnector.removeTrust(truster, trustee);
                                }
                                finish(true);
@@ -398,19 +396,19 @@ public class WebOfTrustUpdater extends AbstractService {
                                return false;
                        }
                        SetTrustJob updateJob = (SetTrustJob) object;
-                       return ((truster == null) ? (updateJob.truster == null) : updateJob.truster.equals(truster)) && ((trustee == null) ? (updateJob.trustee == null) : updateJob.trustee.equals(trustee));
+                       return updateJob.truster.equals(truster) && updateJob.trustee.equals(trustee);
                }
 
                /** {@inheritDoc} */
                @Override
                public int hashCode() {
-                       return getClass().hashCode() ^ ((truster == null) ? 0 : truster.hashCode()) ^ ((trustee == null) ? 0 : trustee.hashCode());
+                       return getClass().hashCode() ^ truster.hashCode() ^ trustee.hashCode();
                }
 
                /** {@inheritDoc} */
                @Override
                public String toString() {
-                       return String.format("%s[truster=%s,trustee=%s]", getClass().getSimpleName(), (truster == null) ? null : truster.getId(), (trustee == null) ? null : trustee.getId());
+                       return String.format("%s[truster=%s,trustee=%s]", getClass().getSimpleName(), truster.getId(), trustee.getId());
                }
 
        }
@@ -420,7 +418,8 @@ public class WebOfTrustUpdater extends AbstractService {
         *
         * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
         */
-       private class WebOfTrustContextUpdateJob extends WebOfTrustUpdateJob {
+       @VisibleForTesting
+       class WebOfTrustContextUpdateJob extends WebOfTrustUpdateJob {
 
                /** The own identity whose contexts to manage. */
                protected final OwnIdentity ownIdentity;
@@ -511,7 +510,8 @@ public class WebOfTrustUpdater extends AbstractService {
         *
         * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
         */
-       private class RemoveContextJob extends WebOfTrustContextUpdateJob {
+       @VisibleForTesting
+       class RemoveContextJob extends WebOfTrustContextUpdateJob {
 
                /**
                 * Creates a new remove-context job.
@@ -546,7 +546,8 @@ public class WebOfTrustUpdater extends AbstractService {
         *
         * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
         */
-       private class SetPropertyJob extends WebOfTrustUpdateJob {
+       @VisibleForTesting
+       class SetPropertyJob extends WebOfTrustUpdateJob {
 
                /** The own identity to update properties on. */
                private final OwnIdentity ownIdentity;