## org.apache.xerces.impl.xs.models
Class XSEmptyCM

    java.lang.Object
      |
      +--org.apache.xerces.impl.xs.models.XSEmptyCM

All Implemented Interfaces:
  XSCMValidator

public class XSEmptyCM
extends java.lang.Object
implements XSCMValidator

XSEmptyCM is a derivative of the abstract content model base class that handles a content model with no children (elements). This model validated on the way in.

# INTERNAL:

  Usage of this class is not supported. It may be altered or removed at any time.

Version:
  $Id: XSEmptyCM.java 806363 2009-08-20 21:18:48Z mrglavas $
Author:
  Elena Litani, IBM, Lisa Martin, IBM

Fields inherited from interface org.apache.xerces.impl.xs.models.XSCMValidator
`FIRST_ERROR, SUBSEQUENT_ERROR`

Constructor Summary
`XSEmptyCM()`

Method Summary
`boolean` `checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler)` check whether this content violates UPA constraint.
`boolean` `endContentModel(int[] currentState)` The method indicates the end of list of children
`java.lang.String` `getTermName(int termId)` Returns the name of the term (element or wildcard) for the given identifier.
`boolean` `isCompactedForUPA()` Checks if this content model has had its min/maxOccurs values reduced for purposes of speeding up UPA.
`int[]` `occurenceInfo(int[] state)` Returns an array containing information about the current repeating term or `null` if no occurrence counting was being performed at the current state.
`java.lang.Object` `oneTransition(org.apache.xerces.xni.QName elementName, int[] currentState, SubstitutionGroupHandler subGroupHandler)` The method corresponds to one transaction in the content model.
`int[]` `startContentModel()` This methods to be called on entering a first element whose type has this content model.
`java.util.Vector` `whatCanGoHere(int[] state)` Check which elements are valid to appear at this point.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### XSEmptyCM

    public XSEmptyCM()

Method Detail

### startContentModel

    public int[] startContentModel()

  This methods to be called on entering a first element whose type has this content model. It will return the initial state of the content model
  Specified by:
    `startContentModel` in interface `XSCMValidator`
  Returns:
    Start state of the content model

### oneTransition

    public java.lang.Object oneTransition(org.apache.xerces.xni.QName elementName,
                                          int[] currentState,
                                          SubstitutionGroupHandler subGroupHandler)

  The method corresponds to one transaction in the content model.
  Specified by:
    `oneTransition` in interface `XSCMValidator`
  Parameters:
    `elementName` - the qualified name of the element
    `currentState` - Current state
    `subGroupHandler` - the substitution group handler
  Returns:
    element index corresponding to the element from the Schema grammar

### endContentModel

    public boolean endContentModel(int[] currentState)

  The method indicates the end of list of children
  Specified by:
    `endContentModel` in interface `XSCMValidator`
  Parameters:
    `currentState` - Current state of the content model
  Returns:
    true if the last state was a valid final state

### checkUniqueParticleAttribution

    public boolean checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler)
                                           throws XMLSchemaException

  check whether this content violates UPA constraint.
  Specified by:
    `checkUniqueParticleAttribution` in interface `XSCMValidator`
  Parameters:
    `subGroupHandler` - the substitution group handler
  Returns:
    true if this content model contains other or list wildcard

### whatCanGoHere

    public java.util.Vector whatCanGoHere(int[] state)

  Check which elements are valid to appear at this point. This method also works if the state is in error, in which case it returns what should have been seen.
  Specified by:
    `whatCanGoHere` in interface `XSCMValidator`
  Parameters:
    `state` - the current state
  Returns:
    a Vector whose entries are instances of either XSWildcardDecl or XSElementDecl.

### occurenceInfo

    public int[] occurenceInfo(int[] state)

  Description copied from interface: `XSCMValidator`

  Returns an array containing information about the current repeating term or `null` if no occurrence counting was being performed at the current state.

  If an array is returned it will have a length == 4 and will contain:

  - a[0] :: min occurs
  - a[1] :: max occurs
  - a[2] :: current value of the counter
  - a[3] :: identifier for the repeating term
  Specified by:
    `occurenceInfo` in interface `XSCMValidator`
  Following copied from interface: `org.apache.xerces.impl.xs.models.XSCMValidator`
  Parameters:
    `state` - the current state
  Returns:
    an array containing information about the current repeating term

### getTermName

    public java.lang.String getTermName(int termId)

  Description copied from interface: `XSCMValidator`
  Returns the name of the term (element or wildcard) for the given identifier.
  Specified by:
    `getTermName` in interface `XSCMValidator`
  Following copied from interface: `org.apache.xerces.impl.xs.models.XSCMValidator`
  Parameters:
    `termId` - identifier for the element declaration or wildcard
  Returns:
    the name of the element declaration or wildcard

### isCompactedForUPA

    public boolean isCompactedForUPA()

  Description copied from interface: `XSCMValidator`
  Checks if this content model has had its min/maxOccurs values reduced for purposes of speeding up UPA. If so, this content model should not be used for any purpose other than checking unique particle attribution
  Specified by:
    `isCompactedForUPA` in interface `XSCMValidator`
  Following copied from interface: `org.apache.xerces.impl.xs.models.XSCMValidator`
  Returns:
    a boolean that says whether this content has been compacted for UPA

Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.