Class TypeIncubator

java.lang.Object
com.sun.msv.datatype.xsd.TypeIncubator

public class TypeIncubator extends Object
derives a new type by adding facets.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private static class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final XSDatatypeImpl
    base type
    private static final String[][]
     
    private final Map
    storage for non-repeatable facets
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(String name, String strValue, boolean fixed, org.relaxng.datatype.ValidationContext context)
    Deprecated.
    please use the addFacet method, which is better named.
    void
    addFacet(String name, String strValue, boolean fixed, org.relaxng.datatype.ValidationContext context)
    adds a facet to the type.
    private static void
    checkRangeConsistency(XSDatatypeImpl newType, String facetName1, String facetName2)
    check (min,max) facet specification and makes sure that they are consistent
    private boolean
    contains(String facetName)
    checks if the specified facet was added to this map
    derive(String newName)
    Deprecated. 
    derive(String newNameUri, String newLocalName)
    derives a new datatype from a datatype by facets that were set.
    void
    dumps the contents to the given object.
    getFacet(String facetName)
    gets a value of non-repeatable facet the behavior is undefined when the specified facetName doesn't exist in this map.
    gets names of the facets in this object this method is used to produce error messages.
    int
    gets a value of non-repeatable facet as a non-negative integer the behavior is undefined when the specified facetName doesn't exist in this map.
    int
    gets a value of non-repeatable facet as a positive integer the behavior is undefined when the specified facetName doesn't exist in this map.
    getVector(String facetName)
    gets a value of repeatable facet the behavior is undefined when the specified facetName doesn't exist in this map.
    boolean
    returns true if no facet is added
    boolean
    isFixed(String facetName)
    returns true if that facet is fixed.
    private static boolean
    isRepeatable(String facetName)
    returns true if the specified facet is a facet which can be set multiple times.
    private static boolean
    isValueFacet(String facetName)
    returns true if the specified facet is a facet that needs value-space-level check.
    private static org.relaxng.datatype.DatatypeException
    reportFacetInconsistency(String newName, DataTypeWithFacet o1, String facetName1, DataTypeWithFacet o2, String facetName2)
    creates a BadTypeException with appropriate error message.

    Methods inherited from class java.lang.Object

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

    • impl

      private final Map impl
      storage for non-repeatable facets
    • baseType

      private final XSDatatypeImpl baseType
      base type
    • exclusiveFacetPairs

      private static final String[][] exclusiveFacetPairs
  • Constructor Details

    • TypeIncubator

      public TypeIncubator(XSDatatype baseType)
  • Method Details

    • add

      public void add(String name, String strValue, boolean fixed, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException
      Deprecated.
      please use the addFacet method, which is better named.
      adds a facet to the type.
      Throws:
      org.relaxng.datatype.DatatypeException
    • addFacet

      public void addFacet(String name, String strValue, boolean fixed, org.relaxng.datatype.ValidationContext context) throws org.relaxng.datatype.DatatypeException
      adds a facet to the type.
      Throws:
      org.relaxng.datatype.DatatypeException - when given facet is already specified
    • derive

      public XSDatatypeImpl derive(String newName) throws org.relaxng.datatype.DatatypeException
      Deprecated.
      Throws:
      org.relaxng.datatype.DatatypeException
    • derive

      public XSDatatypeImpl derive(String newNameUri, String newLocalName) throws org.relaxng.datatype.DatatypeException
      derives a new datatype from a datatype by facets that were set. It is completely legal to use null as the newTypeName parameter, which means the derivation of an anonymous datatype.
      Throws:
      org.relaxng.datatype.DatatypeException - DatatypeException is thrown if derivation is somehow invalid. For example, not applicable facets are applied, or enumeration has invalid values, ... things like that.
    • checkRangeConsistency

      private static void checkRangeConsistency(XSDatatypeImpl newType, String facetName1, String facetName2) throws org.relaxng.datatype.DatatypeException
      check (min,max) facet specification and makes sure that they are consistent
      Throws:
      org.relaxng.datatype.DatatypeException - when two facets are inconsistent
    • reportFacetInconsistency

      private static org.relaxng.datatype.DatatypeException reportFacetInconsistency(String newName, DataTypeWithFacet o1, String facetName1, DataTypeWithFacet o2, String facetName2)
      creates a BadTypeException with appropriate error message. this method is only useful for reporting facet consistency violation.
    • isValueFacet

      private static boolean isValueFacet(String facetName)
      returns true if the specified facet is a facet that needs value-space-level check.
    • isRepeatable

      private static boolean isRepeatable(String facetName)
      returns true if the specified facet is a facet which can be set multiple times.
    • isFixed

      public boolean isFixed(String facetName)
      returns true if that facet is fixed. the behavior is undefined when the specified facetName doesn't exist in this map.
    • getFacet

      public Object getFacet(String facetName)
      gets a value of non-repeatable facet the behavior is undefined when the specified facetName doesn't exist in this map.
    • getVector

      public Vector getVector(String facetName)
      gets a value of repeatable facet the behavior is undefined when the specified facetName doesn't exist in this map.
    • getPositiveInteger

      public int getPositiveInteger(String facetName) throws org.relaxng.datatype.DatatypeException
      gets a value of non-repeatable facet as a positive integer the behavior is undefined when the specified facetName doesn't exist in this map.
      Throws:
      org.relaxng.datatype.DatatypeException - if the parameter cannot be parsed as a positive integer
    • getNonNegativeInteger

      public int getNonNegativeInteger(String facetName) throws org.relaxng.datatype.DatatypeException
      gets a value of non-repeatable facet as a non-negative integer the behavior is undefined when the specified facetName doesn't exist in this map.
      Throws:
      org.relaxng.datatype.DatatypeException - if the parameter cannot be parsed as a non-negative integer
    • contains

      private boolean contains(String facetName)
      checks if the specified facet was added to this map
    • isEmpty

      public boolean isEmpty()
      returns true if no facet is added
    • dump

      public void dump(PrintStream out)
      dumps the contents to the given object. this method is for debug use only.
    • getFacetNames

      public String getFacetNames()
      gets names of the facets in this object this method is used to produce error messages.