Class NameClass

java.lang.Object
com.sun.tools.rngom.nc.NameClass
All Implemented Interfaces:
ParsedNameClass, Serializable
Direct Known Subclasses:
AnyNameExceptNameClass, ChoiceNameClass, NsNameClass, NsNameExceptNameClass, SimpleNameClass

public abstract class NameClass extends Object implements ParsedNameClass, Serializable
Name class is a set of QNames.
See Also:
  • Field Details

    • ANY

      public static final NameClass ANY
      Sigleton instance that represents "anyName".
    • NULL

      public static final NameClass NULL
      Sigleton instance that accepts no name.

      This instance is useful when doing boolean arithmetic over name classes (such as computing an inverse of a given name class, etc), even though it can never appear in a RELAX NG surface syntax.

      Internally, this instance is also used for:

      1. Used to recover from errors during parsing.
      2. Mark element patterns with <notAllowed/> content model.
  • Constructor Details

    • NameClass

      public NameClass()
  • Method Details

    • contains

      public abstract boolean contains(QName name)
      Returns true if the given QName is a valid name for this QName.
    • containsSpecificity

      public abstract int containsSpecificity(QName name)
    • accept

      public abstract <V> V accept(NameClassVisitor<V> visitor)
      Visitor pattern support.
    • isOpen

      public abstract boolean isOpen()
      Returns true if the name class accepts infinite number of QNames.

      Intuitively, this method returns true if the name class is some sort of wildcard.

    • listNames

      public Set<QName> listNames()
      If the name class is closed (IOW !isOpen()), return the set of names in this name class. Otherwise the behavior is undefined.
    • hasOverlapWith

      public final boolean hasOverlapWith(NameClass nc2)
      Returns true if the intersection between this name class and the specified name class is non-empty.