+ /**
+ * Removes the given context from the given own identity.
+ *
+ * @param ownIdentity
+ * The own identity to remove the context from
+ * @param context
+ * The context to remove
+ */
+ public void removeContext(OwnIdentity ownIdentity, String context) {
+ RemoveContextJob removeContextJob = new RemoveContextJob(ownIdentity, context);
+ if (!updateJobs.contains(removeContextJob)) {
+ logger.log(Level.FINER, "Adding Context Job: " + removeContextJob);
+ try {
+ updateJobs.put(removeContextJob);
+ } catch (InterruptedException ie1) {
+ /* the queue is unbounded so it should never block. */
+ }
+ }
+ }
+
+ /**
+ * Sets a property on the given own identity.
+ *
+ * @param ownIdentity
+ * The own identity to set the property on
+ * @param propertyName
+ * The name of the property to set
+ * @param propertyValue
+ * The value of the property to set
+ */
+ public void setProperty(OwnIdentity ownIdentity, String propertyName, String propertyValue) {
+ SetPropertyJob setPropertyJob = new SetPropertyJob(ownIdentity, propertyName, propertyValue);
+ if (updateJobs.contains(setPropertyJob)) {
+ updateJobs.remove(setPropertyJob);
+ }
+ logger.log(Level.FINER, "Adding Property Job: " + setPropertyJob);
+ try {
+ updateJobs.put(setPropertyJob);
+ } catch (InterruptedException e) {
+ /* the queue is unbounded so it should never block. */
+ }
+ }
+
+ /**
+ * Removes a property from the given own identity.
+ *
+ * @param ownIdentity
+ * The own identity to remove the property from
+ * @param propertyName
+ * The name of the property to remove
+ */
+ public void removeProperty(OwnIdentity ownIdentity, String propertyName) {
+ setProperty(ownIdentity, propertyName, null);
+ }
+