- * The implementation of this class does nothing. - */ - public void run() { - /* does nothing. */ - } - - /** - * Waits for completion of this job or stopping of the WebOfTrust - * updater. - * - * @see WebOfTrustUpdater#stop() - */ - @SuppressWarnings("synthetic-access") - public void waitForCompletion() { - synchronized (syncObject) { - while (!finished && !shouldStop()) { - try { - syncObject.wait(); - } catch (InterruptedException ie1) { - /* weâre looping, ignore. */ - } - } - } - } - - // - // PROTECTED METHODS - // - - /** - * Signals that this job has finished. - */ - protected void finish() { - synchronized (syncObject) { - finished = true; - syncObject.notifyAll(); - } - } - - } - - /** - * Base class for WebOfTrust trust update jobs. - * - * @author David âBombeâ Roden - */ - private class WebOfTrustTrustUpdateJob extends WebOfTrustUpdateJob { - - /** The identity giving the trust. */ - protected final OwnIdentity truster; - - /** The identity receiving the trust. */ - protected final Identity trustee; - - /** - * Creates a new trust update job. - * - * @param truster - * The identity giving the trust - * @param trustee - * The identity receiving the trust - */ - @SuppressWarnings("synthetic-access") - public WebOfTrustTrustUpdateJob(OwnIdentity truster, Identity trustee) { - this.truster = truster; - this.trustee = trustee; - } - - // - // OBJECT METHODS - // - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object object) { - if ((object == null) || !object.getClass().equals(getClass())) { - return false; - } - WebOfTrustTrustUpdateJob updateJob = (WebOfTrustTrustUpdateJob) object; - return ((truster == null) ? (updateJob.truster == null) : updateJob.truster.equals(truster)) && ((trustee == null) ? (updateJob.trustee == null) : updateJob.trustee.equals(trustee)); - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return getClass().hashCode() ^ ((truster == null) ? 0 : truster.hashCode()) ^ ((trustee == null) ? 0 : 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()); - } - - } - - /** - * Update job that sets the trust relation between two identities. - * - * @author David âBombeâ Roden - */ - private class SetTrustJob extends WebOfTrustTrustUpdateJob { - - /** The score of the relation. */ - private final Integer score; - - /** The comment of the relation. */ - private final String comment; - - /** - * Creates a new set trust job. - * - * @param truster - * The identity giving the trust - * @param trustee - * The identity receiving the trust - * @param score - * The score of the trust (from -100 to 100, may be - * {@code null} to remote the trust relation completely) - * @param comment - * The comment of the trust relation - */ - public SetTrustJob(OwnIdentity truster, Identity trustee, Integer score, String comment) { - super(truster, trustee); - this.score = score; - this.comment = comment; - } - - /** - * {@inheritDoc} - */ - @Override - @SuppressWarnings("synthetic-access") - public void run() { - try { - if (score != null) { - if (trustee instanceof DefaultIdentity) { - ((DefaultIdentity) trustee).setTrust(truster, new Trust(score, null, 0)); - } - webOfTrustConnector.setTrust(truster, trustee, score, comment); - } else { - if (trustee instanceof DefaultIdentity) { - ((DefaultIdentity) trustee).setTrust(truster, null); - } - webOfTrustConnector.removeTrust(truster, trustee); - } - } catch (WebOfTrustException wote1) { - logger.log(Level.WARNING, "Could not set Trust value for " + truster + " -> " + trustee + " to " + score + " (" + comment + ")!", wote1); - } - finish(); - } - - } - - /** - * Update job that retrieves the trust relation between two identities. - * - * @author David âBombeâ Roden - */ - private class GetTrustJob extends WebOfTrustTrustUpdateJob { - - /** - * Creates a new trust update job. - * - * @param truster - * The identity giving the trust - * @param trustee - * The identity receiving the trust - */ - public GetTrustJob(OwnIdentity truster, Identity trustee) { - super(truster, trustee); - } - - /** - * {@inheritDoc} - */ - @Override - @SuppressWarnings("synthetic-access") - public void run() { - try { - Trust trust = webOfTrustConnector.getTrust(truster, trustee); - if (trustee instanceof DefaultIdentity) { - ((DefaultIdentity) trustee).setTrust(truster, trust); - } - } catch (PluginException pe1) { - logger.log(Level.WARNING, "Could not get Trust value for " + truster + " -> " + trustee + "!", pe1); - } - finish(); - } - } +@ImplementedBy(WebOfTrustUpdaterImpl.class) +public interface WebOfTrustUpdater extends Service { + + void setTrust(OwnIdentity truster, Identity trustee, Integer score, String comment); + boolean addContextWait(OwnIdentity ownIdentity, String context); + void removeContext(OwnIdentity ownIdentity, String context); + void setProperty(OwnIdentity ownIdentity, String propertyName, String propertyValue); + void removeProperty(OwnIdentity ownIdentity, String propertyName); }