+
+ }
+
+ /**
+ * Base class for context updates of an {@link OwnIdentity}.
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+ private class WebOfTrustContextUpdateJob extends WebOfTrustUpdateJob {
+
+ /** The own identity whose contexts to manage. */
+ protected final OwnIdentity ownIdentity;
+
+ /** The context to update. */
+ protected final String context;
+
+ /**
+ * Creates a new context update job.
+ *
+ * @param ownIdentity
+ * The own identity to update
+ * @param context
+ * The context to update
+ */
+ @SuppressWarnings("synthetic-access")
+ public WebOfTrustContextUpdateJob(OwnIdentity ownIdentity, String context) {
+ Validation.begin().isNotNull("OwnIdentity", ownIdentity).isNotNull("Context", context).check();
+ this.ownIdentity = ownIdentity;
+ this.context = context;
+ }
+
+ //
+ // OBJECT METHODS
+ //
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object object) {
+ if ((object == null) || !object.getClass().equals(getClass())) {
+ return false;
+ }
+ WebOfTrustContextUpdateJob updateJob = (WebOfTrustContextUpdateJob) object;
+ return updateJob.ownIdentity.equals(ownIdentity) && updateJob.context.equals(context);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int hashCode() {
+ return getClass().hashCode() ^ ownIdentity.hashCode() ^ context.hashCode();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String toString() {
+ return String.format("%s[ownIdentity=%s,context=%s]", getClass().getSimpleName(), ownIdentity, context);
+ }
+
+ }
+
+ /**
+ * Job that adds a context to an {@link OwnIdentity}.
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+ private class AddContextJob extends WebOfTrustContextUpdateJob {
+
+ /**
+ * Creates a new add-context job.
+ *
+ * @param ownIdentity
+ * The own identity whose contexts to manage
+ * @param context
+ * The context to add
+ */
+ public AddContextJob(OwnIdentity ownIdentity, String context) {
+ super(ownIdentity, context);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ @SuppressWarnings("synthetic-access")
+ public void run() {
+ try {
+ webOfTrustConnector.addContext(ownIdentity, context);
+ ownIdentity.addContext(context);
+ finish(true);
+ } catch (PluginException pe1) {
+ logger.log(Level.WARNING, String.format("Could not add Context “%2$s” to Own Identity %1$s!", ownIdentity, context), pe1);
+ finish(false);
+ }
+ }
+