* The identity receiving the trust
*/
public void getTrust(OwnIdentity truster, Identity trustee) {
- updateJobs.add(new GetTrustJob(truster, trustee));
+ GetTrustJob getTrustJob = new GetTrustJob(truster, trustee);
+ if (!updateJobs.contains(getTrustJob)) {
+ logger.log(Level.FINER, "Adding Trust Update Job: " + getTrustJob);
+ try {
+ updateJobs.put(getTrustJob);
+ } catch (InterruptedException ie1) {
+ /* the queue is unbounded so it should never block. */
+ }
+ }
}
/**
* The comment of the trust relation
*/
public void setTrust(OwnIdentity truster, Identity trustee, Integer score, String comment) {
- updateJobs.add(new SetTrustJob(truster, trustee, score, comment));
+ SetTrustJob setTrustJob = new SetTrustJob(truster, trustee, score, comment);
+ if (updateJobs.contains(setTrustJob)) {
+ updateJobs.remove(setTrustJob);
+ }
+ logger.log(Level.FINER, "Adding Trust Update Job: " + setTrustJob);
+ try {
+ updateJobs.put(setTrustJob);
+ } catch (InterruptedException e) {
+ /* the queue is unbounded so it should never block. */
+ }
}
//
if (shouldStop() || (updateJob == stopJob)) {
break;
}
+ logger.log(Level.FINE, "Running Trust Update Job: " + updateJob);
+ long startTime = System.currentTimeMillis();
updateJob.run();
+ long endTime = System.currentTimeMillis();
+ logger.log(Level.FINE, "Trust Update Job finished, took " + (endTime - startTime) + " ms.");
} catch (InterruptedException ie1) {
/* happens, ignore, loop. */
}
/* does nothing. */
}
+ //
+ // OBJECT METHODS
+ //
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean equals(Object object) {
+ if ((object == null) || !object.getClass().equals(getClass())) {
+ return false;
+ }
+ TrustUpdateJob updateJob = (TrustUpdateJob) 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 ((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());
+ }
+
}
/**