public void visitQualifiedIdentifier(QualifiedIdentifier e) { implode(e.getIdentifiers(), String.valueOf(e.getSeparator())); }
public static Identifier ident(QualificationSeparator separator, String... components) { if (components == null) { return null; } List<SimpleIdentifier> list = new ArrayList<SimpleIdentifier>(); for (String o : components) { if (o != null && (o = o.trim()).length() > 0) { for (String elt : o.split("\\.|::")) { list.add(new SimpleIdentifier(elt)); } } } if (list.isEmpty()) { return null; } if (list.size() == 1) { return list.get(0); } QualifiedIdentifier id = new QualifiedIdentifier(separator); id.setIdentifiers(list); return id; }
public void add(Identifier identifier) { if (identifier instanceof SimpleIdentifier) addIdentifier((SimpleIdentifier)identifier); else { QualifiedIdentifier oqi = (QualifiedIdentifier)identifier; if (!SyntaxUtils.equal(oqi.getSeparator(), separator)) throw new IllegalArgumentException("Attempting to derive qualified identifier " + this + " with mismatching separator " + separator + " and sub-name " + identifier); addIdentifiers(oqi.getIdentifiers()); } } public QualifiedIdentifier() {}
public void visitQualifiedIdentifier(QualifiedIdentifier e) { if (e.getParentElement() instanceof TypeRef) { QualifiedIdentifier c = e.clone(); SimpleIdentifier si = c.resolveLastSimpleIdentifier(); List<SimpleIdentifier> sis = new ArrayList<SimpleIdentifier>(c.resolveSimpleIdentifiers()); c.setIdentifiers(sis); c.resolveLastSimpleIdentifier().setTemplateArguments(targs);//clones(e.resolveLastSimpleIdentifier().getTemplateArguments())); append(c); return;
public static Expression varRef(Identifier name) { MemberRefStyle s = MemberRefStyle.Dot; if (name instanceof QualifiedIdentifier) { QualificationSeparator sep = ((QualifiedIdentifier) name).getSeparator(); if (sep == QualificationSeparator.Colons) { s = MemberRefStyle.Colons; } } if (name instanceof SimpleIdentifier) { return varRef((SimpleIdentifier) name); } return memberRef(expr(typeRef(name.resolveAllButLastIdentifier())), s, name.resolveLastSimpleIdentifier()); }
public void setIdentifiers(List<SimpleIdentifier> identifiers) { changeValue(this, this.identifiers, identifiers); } @Override
public void addIdentifiers(List<SimpleIdentifier> is) { for (SimpleIdentifier i : is) addIdentifier(i); }
public void visitQualifiedIdentifier(QualifiedIdentifier qualifiedIdentifier) { visitIdentifier(qualifiedIdentifier); visit(qualifiedIdentifier.getIdentifiers()); }
boolean isResolved(Identifier i) { if (i == null || i.isPlain()) { return false; } return (i instanceof Identifier.QualifiedIdentifier) && Identifier.QualificationSeparator.Dot.equals(((Identifier.QualifiedIdentifier) i).getSeparator()); }
@Override public List<SimpleIdentifier> resolveSimpleIdentifiers() { return getIdentifiers(); } @Override
@Override public Element getNextChild(Element child) { return getNextSibling(identifiers, child); } @Override
public QualifiedIdentifier derive(QualificationSeparator separator, String... subIdentifiers) { QualifiedIdentifier qi = new QualifiedIdentifier(separator); qi.add(this); for (String i : subIdentifiers) qi.add(new SimpleIdentifier(i)); return qi; } @Override
boolean isResolved(Identifier i) { if (i == null || i.isPlain()) { return false; } return (i instanceof Identifier.QualifiedIdentifier) && Identifier.QualificationSeparator.Dot.equals(((Identifier.QualifiedIdentifier) i).getSeparator()); }
public static Identifier ident(Class<?> cl, Expression... args) { if (cl == null) { return null; } if (cl == Void.TYPE || cl == Void.class) { return ident("void"); } QualifiedIdentifier id = new QualifiedIdentifier(QualificationSeparator.Dot); id.setIdentifiers(getClassSimpleIdentifiers(cl.getName())); id.resolveLastSimpleIdentifier().setTemplateArguments(Arrays.asList(args)); return id; }
@Override public QualifiedIdentifier eraseTemplateArguments() { return resolveAllButLastIdentifier().derive(getSeparator(), resolveLastSimpleIdentifier().eraseTemplateArguments()); } @Override
@Override public Identifier resolveAllButLastIdentifier() { List<SimpleIdentifier> si = new ArrayList<SimpleIdentifier>(identifiers); if (!si.isEmpty()) { si.remove(si.size() - 1); } return new QualifiedIdentifier(getSeparator(), si); } }
public QualifiedIdentifier derive(QualificationSeparator separator, Identifier... subIdentifiers) { QualifiedIdentifier qi = new QualifiedIdentifier(separator); qi.add(this); for (Identifier i : subIdentifiers) if (i != null) qi.add(i); return qi; } public QualifiedIdentifier derive(QualificationSeparator separator, String... subIdentifiers) {