static boolean overlap(NameClass nc1, NameClass nc2) { if (nc2 instanceof SimpleNameClass) { SimpleNameClass snc = (SimpleNameClass) nc2; return nc1.contains(snc.name); } if (nc1 instanceof SimpleNameClass) { SimpleNameClass snc = (SimpleNameClass) nc1; return nc2.contains(snc.name); } return new OverlapDetector(nc1, nc2).overlaps; } }
void addElement(NameClass nc) { if (nameClass == null) nameClass = nc; else if (nc != null) nameClass = new ChoiceNameClass(nameClass, nc); }
public NameClass other(XSWildcard.Other wc) { return new AnyNameExceptNameClass( new ChoiceNameClass( new NsNameClass(""), new NsNameClass(wc.getOtherNamespace()))); }
@Override public NameClass makeName(String ns, String localName, String prefix, L loc, A anno) { if (prefix == null) { return new SimpleNameClass(ns, localName); } else { return new SimpleNameClass(ns, localName, prefix); } }
@Override public NameClass makeNsName(String ns, L loc, A anno) { return new NsNameClass(ns); }
/** * Returns true if the intersection between this name class * and the specified name class is non-empty. */ public final boolean hasOverlapWith( NameClass nc2 ) { return OverlapDetector.overlap(this,nc2); }
@Override public <V> V accept(NameClassVisitor<V> visitor) { return visitor.visitName(name); }
public int containsSpecificity(QName name) { return contains(name) ? SPECIFICITY_ANY_NAME : SPECIFICITY_NONE; }
@Override public int containsSpecificity(QName name) { return contains(name) ? SPECIFICITY_NAME : SPECIFICITY_NONE; }
public Void visitName(QName name) { probe(name); return null; }
public NameClass other(XSWildcard.Other wc) { return new AnyNameExceptNameClass( new ChoiceNameClass( new NsNameClass(""), new NsNameClass(wc.getOtherNamespace()))); }
public NameClass other(XSWildcard.Other wc) { return new AnyNameExceptNameClass( new ChoiceNameClass( new NsNameClass(""), new NsNameClass(wc.getOtherNamespace()))); }
public Void visitNsNameExcept(String ns, NameClass nc) { return nc.accept(this); }