@Override public XDIAddress map(Relation relation) { return relation.getTargetXDIAddress(); } }
/** * Get a $is# datatype associated with a context node * * @param contextNode * @return datatype */ public static XDIAddress getDataType(ContextNode contextNode) { Relation relation = contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_IS_TYPE); return relation == null ? null : relation.getTargetXDIAddress(); }
@Override public boolean select(Relation relation) { return relation.getTargetXDIAddress().equals(targetXDIAddress); } };
public static XDIAddress getContextNodeType(ContextNode contextNode) { Relation contextNodeTypeRelation = contextNode.getRelation(XDIDictionaryConstants.XDI_ADD_IS_TYPE); if (contextNodeTypeRelation == null) return null; return contextNodeTypeRelation.getTargetXDIAddress(); }
/** * Returns the target address of the operation. * @return The target address of the operation. */ public XDIAddress getTargetXDIAddress() { XdiInnerRoot targetInnerRoot = this.getTargetXdiInnerRoot(); if (targetInnerRoot != null) { return null; } else { return this.getRelation().getTargetXDIAddress(); } }
/** * Returns the link contract address. * @return The link contract address. */ public XDIAddress getLinkContractXDIAddress() { Relation linkContractRelation = this.getContextNode().getRelation(XDILinkContractConstants.XDI_ADD_CONTRACT); if (linkContractRelation == null) return null; return linkContractRelation.getTargetXDIAddress(); }
private void putRelationIntoJsonObject(Relation relation, JsonObject jsonObject) { JsonArray relationJsonArray = jsonObject.getAsJsonArray(relation.getXDIAddress().toString()); if (relationJsonArray == null) { relationJsonArray = new JsonArray(); jsonObject.add(relation.getXDIAddress().toString(), relationJsonArray); } relationJsonArray.add(new JsonPrimitive(relation.getTargetXDIAddress().toString())); } }
@Override public synchronized void delRelations() { ReadOnlyIterator<Relation> relations = this.getRelations(); // delete relations this.relations.clear(); // delete inner roots for (Relation relation : relations) { this.delRelationDelInnerRoot(relation.getXDIAddress(), relation.getTargetXDIAddress()); } }
@Override public synchronized void delRelations(XDIAddress XDIaddress) { ReadOnlyIterator<Relation> relations = this.getRelations(XDIaddress); // delete relations this.relations.remove(XDIaddress); // delete inner roots for (Relation relation : relations) { this.delRelationDelInnerRoot(relation.getXDIAddress(), relation.getTargetXDIAddress()); } }
@Override public List<Relation> replaceRelation(Relation relation) { XDIAddress contextNodeXDIAddress = relation.getContextNode().getXDIAddress(); XDIAddress XDIaddress = relation.getXDIAddress(); XDIAddress targetXDIAddress = relation.getTargetXDIAddress(); XDIAddress replacedContextNodeXDIAddress = replaceXDIAddress(contextNodeXDIAddress); XDIAddress replacedTargetXDIAddress = replaceXDIAddress(targetXDIAddress); if (log.isTraceEnabled()) log.trace("Replaced " + contextNodeXDIAddress + " with " + replacedContextNodeXDIAddress); if (log.isTraceEnabled()) log.trace("Replaced " + targetXDIAddress + " with " + replacedTargetXDIAddress); Relation replacedRelation = GraphUtil.relationFromComponents(replacedContextNodeXDIAddress, XDIaddress, replacedTargetXDIAddress); return Collections.singletonList(replacedRelation); }
public DID getGuardian() { Relation guardianRelation = this.getContextNode().getRelation(XDI_ADD_GUARDIAN); if (guardianRelation == null) return null; XDIAddress guardianXDIAddress = guardianRelation.getTargetXDIAddress(); if (guardianXDIAddress == null) return null; return DID.fromXDIAddress(guardianXDIAddress); }
private void putRelationIntoJsonObject(Relation relation, JsonObject jsonObject) { if (! this.isWriteImplied() && relation.getStatement().isImplied()) return; JsonArray relationJsonArray = jsonObject.getAsJsonArray("/" + relation.getXDIAddress().toString()); if (relationJsonArray == null) { relationJsonArray = new JsonArray(); jsonObject.add("/" + relation.getXDIAddress().toString(), relationJsonArray); } relationJsonArray.add(new JsonPrimitive(relation.getTargetXDIAddress().toString())); } }
@Override public List<Relation> replaceRelation(Relation relation) { XDIAddress contextNodeXDIAddress = relation.getContextNode().getXDIAddress(); XDIAddress XDIaddress = relation.getXDIAddress(); XDIAddress targetXDIAddress = relation.getTargetXDIAddress(); XDIAddress replacedTargetXDIAddress = replaceXDIAddress(targetXDIAddress); Relation replacedRelation = GraphUtil.relationFromComponents(contextNodeXDIAddress, XDIaddress, replacedTargetXDIAddress); return Collections.singletonList(replacedRelation); }
/** * When a context node is deleted, all inner roots have to be deleted too. */ protected void delContextNodeDelAllInnerRoots() { for (Relation relation : this.getAllRelations()) { AbstractContextNode contextNode = ((AbstractContextNode) relation.getContextNode()); contextNode.delRelationDelInnerRoot(relation.getXDIAddress(), relation.getTargetXDIAddress()); } }
@Override public synchronized void delRelations() { ReadOnlyIterator<Relation> relations = this.getRelations(); // delete relations String relationsKey = this.getRelationsKey(); this.keyValueStore.delete(relationsKey); // delete inner roots for (Relation relation : relations) { this.delRelationDelInnerRoot(relation.getXDIAddress(), relation.getTargetXDIAddress()); } }
@Override public boolean equals(Object object) { if (object == null || ! (object instanceof Relation)) return false; if (object == this) return true; Relation other = (Relation) object; // two relations are equal if their context nodes, addresses, and target node addresses are equal return this.getContextNode().equals(other.getContextNode()) && this.getXDIAddress().equals(other.getXDIAddress()) && this.getTargetXDIAddress().equals(other.getTargetXDIAddress()); }
/** * Return the TO peer root arc of the message (template). */ public XDIArc getToPeerRootXDIArc() { Relation toPeerRootXDIArcRelation = this.getContextNode().getRelation(XDIMessagingConstants.XDI_ADD_TO); if (toPeerRootXDIArcRelation == null) return null; XDIAddress toPeerRootXDIAddress = toPeerRootXDIArcRelation.getTargetXDIAddress(); if (toPeerRootXDIAddress.getNumXDIArcs() > 1 || ! XdiPeerRoot.isValidXDIArc(toPeerRootXDIAddress.getFirstXDIArc())) return null; return toPeerRootXDIAddress.getFirstXDIArc(); }
@Override public synchronized void delRelations(XDIAddress XDIaddress) { ReadOnlyIterator<Relation> relations = this.getRelations(XDIaddress); // delete relations String relationsKey = this.getRelationsKey(); this.keyValueStore.delete(relationsKey, XDIaddress.toString()); // delete inner roots for (Relation relation : relations) { this.delRelationDelInnerRoot(relation.getXDIAddress(), relation.getTargetXDIAddress()); } }
/** * Return the FROM peer root arc of the message (template). */ public XDIArc getFromPeerRootXDIArc() { Relation fromPeerRootXDIArcRelation = this.getContextNode().getRelation(XDIMessagingConstants.XDI_ADD_FROM); if (fromPeerRootXDIArcRelation == null) return null; XDIAddress fromPeerRootXDIAddress = fromPeerRootXDIArcRelation.getTargetXDIAddress(); if (fromPeerRootXDIAddress.getNumXDIArcs() > 1 || ! XdiPeerRoot.isValidXDIArc(fromPeerRootXDIAddress.getFirstXDIArc())) return null; return fromPeerRootXDIAddress.getFirstXDIArc(); }
@Override public int compareTo(Relation other) { if (other == null || other == this) return 0; int compare; if ((compare = this.getContextNode().compareTo(other.getContextNode())) != 0) return compare; if ((compare = this.getXDIAddress().compareTo(other.getXDIAddress())) != 0) return compare; if ((compare = this.getTargetXDIAddress().compareTo(other.getTargetXDIAddress())) != 0) return compare; return 0; }