@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 void visitQualifiedIdentifier(QualifiedIdentifier e) { implode(e.getIdentifiers(), String.valueOf(e.getSeparator())); }
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 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()); }
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 QualifiedIdentifier eraseTemplateArguments() { return resolveAllButLastIdentifier().derive(getSeparator(), resolveLastSimpleIdentifier().eraseTemplateArguments()); } @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()); }