Class TypeHierarchy

  • All Implemented Interfaces:
    java.io.Serializable

    public class TypeHierarchy
    extends java.lang.Object
    implements java.io.Serializable
    This class exists to provide answers to questions about the type hierarchy. Because such questions are potentially expensive, it caches the answers.
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int DISJOINT
      Constant denoting relationship between two types: A is disjoint from B
      static int OVERLAPS
      Constant denoting relationship between two types: A overlaps B
      static int SAME_TYPE
      Constant denoting relationship between two types: A is the same type as B
      static int SUBSUMED_BY
      Constant denoting relationship between two types: A is subsumed by B
      static int SUBSUMES
      Constant denoting relationship between two types: A subsumes B
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Configuration getConfiguration()  
      boolean isIdCode​(int typeCode)
      Test whether a type annotation code represents the type xs:ID or one of its subtypes
      boolean isIdrefsCode​(int typeCode)
      Test whether a type annotation code represents the type xs:IDREF, xs:IDREFS or one of their subtypes
      boolean isSubType​(ItemType subtype, ItemType supertype)
      Determine whether type A is type B or one of its subtypes, recursively
      int relationship​(ItemType t1, ItemType t2)
      Determine the relationship of one item type to another.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SAME_TYPE

        public static final int SAME_TYPE
        Constant denoting relationship between two types: A is the same type as B
        See Also:
        Constant Field Values
      • SUBSUMES

        public static final int SUBSUMES
        Constant denoting relationship between two types: A subsumes B
        See Also:
        Constant Field Values
      • SUBSUMED_BY

        public static final int SUBSUMED_BY
        Constant denoting relationship between two types: A is subsumed by B
        See Also:
        Constant Field Values
      • OVERLAPS

        public static final int OVERLAPS
        Constant denoting relationship between two types: A overlaps B
        See Also:
        Constant Field Values
      • DISJOINT

        public static final int DISJOINT
        Constant denoting relationship between two types: A is disjoint from B
        See Also:
        Constant Field Values
    • Constructor Detail

    • Method Detail

      • isSubType

        public boolean isSubType​(ItemType subtype,
                                 ItemType supertype)
        Determine whether type A is type B or one of its subtypes, recursively
        Parameters:
        subtype - identifies the first type
        supertype - identifies the second type
        Returns:
        true if the first type is the second type or a (direct or indirect) subtype of the second type
      • relationship

        public int relationship​(ItemType t1,
                                ItemType t2)
        Determine the relationship of one item type to another.
        Parameters:
        t1 - the first item type
        t2 - the second item type
        Returns:
        SAME_TYPE if the types are the same; SUBSUMES if the first type subsumes the second (that is, all instances of the second type are also instances of the first); SUBSUMED_BY if the second type subsumes the first; OVERLAPS if the two types overlap (have a non-empty intersection, but neither subsumes the other); DISJOINT if the two types are disjoint (have an empty intersection)
      • isIdCode

        public boolean isIdCode​(int typeCode)
        Test whether a type annotation code represents the type xs:ID or one of its subtypes
      • isIdrefsCode

        public boolean isIdrefsCode​(int typeCode)
        Test whether a type annotation code represents the type xs:IDREF, xs:IDREFS or one of their subtypes