public static <A,B,C> Triple<A,B,C> create(A a, B b, C c) { return new Triple<A, B, C>(a,b,c); }
protected String getReferences(Triple<EObject, EReference, INode> triple, LinkedHashSet<Triple<EObject, EReference, INode>> resolving2) { StringBuffer buffer = new StringBuffer(); boolean found = false; for (Triple<EObject, EReference, INode> triple2 : resolving2) { found = found || triple2.equals(triple); if (found) buffer.append(getQualifiedName(triple2.getSecond())).append("->"); } buffer.append(getQualifiedName(triple.getSecond())); return buffer.toString(); }
@Override public boolean equals(Object other) { if (other == null) return false; if (other == this) return true; if (other instanceof Triple<?,?,?>) { Triple<?,?,?> r = (Triple<?,?,?>) other; if (!super.equals(other)) return false; return third==null?r.getThird()==null : third.equals(r.getThird()); } return false; }
public EObject getContext() { return triple.getFirst(); }
if (!getUnresolvableURIFragments().contains(uriFragment)) { Triple<EObject, EReference, INode> triple = getEncoder().decode(this, uriFragment); if (batchLinkingService.isBatchLinkable(triple.getSecond())) { if (compilerPhases.isIndexing(this)) log.error("Don't resolve expressions during indexing!", new IllegalStateException("Resource URI : "+getURI()+", fragment : "+uriFragment)); return batchLinkingService.resolveBatched(triple.getFirst(), triple.getSecond(), uriFragment);
public EReference getReference() { return triple.getSecond(); }
@Override public boolean equals(Object other) { if (other == null) return false; if (other == this) return true; if (other instanceof Triple<?,?,?>) { Triple<?,?,?> r = (Triple<?,?,?>) other; if (!super.equals(other)) return false; return third==null?r.getThird()==null : third.equals(r.getThird()); } return false; }
@Override protected String identifier(Object object) { if (object instanceof Triple<?, ?, ?>) return (String) ((Triple<?, ?, ?>) object).getFirst(); return object.toString(); }
@Override public int hashCode() { return super.hashCode()+ 17*(third==null?0:getThird().hashCode()); }
private boolean isPackageKnown(String nsURI) { for (Triple<String, String, String> key : infoMap.keySet()) { if (key.getFirst().equals(nsURI)) return true; } for(EClassifierInfos parent: parents) { if (parent.isPackageKnown(nsURI)) return true; } return false; }
@Override protected String label(Object object) { if (object instanceof Triple<?, ?, ?>) return (String) ((Triple<?, ?, ?>) object).getSecond(); return object.toString(); }
public static <A,B,C> Triple<A,B,C> create(A a, B b, C c) { return new Triple<A, B, C>(a,b,c); }
public void createSequence(EObject context, EObject semanticObject) { SemanticNodeIterator ni = new SemanticNodeIterator(semanticObject); while (ni.hasNext()) { Triple<INode, AbstractElement, EObject> node = ni.next(); if (node.getSecond() instanceof RuleCall) { RuleCall rc = (RuleCall) node.getSecond(); if (rc.getRule().getType().getClassifier() instanceof EClass) acceptSemantic(semanticObject, rc, node.getThird(), node.getFirst()); else if (GrammarUtil.containingCrossReference(node.getSecond()) != null) { EStructuralFeature feature = FeatureFinderUtil .getFeature(node.getSecond(), semanticObject.eClass()); acceptSemantic(semanticObject, rc, semanticObject.eGet(feature), node.getFirst()); } else { String strVal = NodeModelUtils.getTokenText(node.getFirst()); Object val = valueConverter.toValue(strVal, rc.getRule().getName(), node.getFirst()); acceptSemantic(semanticObject, rc, val, node.getFirst()); } } else if (node.getSecond() instanceof Keyword) acceptSemantic(semanticObject, node.getSecond(), node.getFirst().getText(), node.getFirst()); else if (node.getSecond() instanceof Action) { acceptSemantic(semanticObject, node.getSecond(), semanticObject, node.getFirst()); } } }
@Override public int hashCode() { return super.hashCode()+ 17*(third==null?0:getThird().hashCode()); }
public Triple<INode, AbstractElement, EObject> next() { Triple<INode, AbstractElement, EObject> oldNext = next; if (next != null) next = findNext(next.getFirst(), true); return oldNext; }