Top Description Fields Constructors Methods
org.apache.xerces.impl.dtd.models

public Class SimpleContentModel

extends Object
implements ContentModelValidator
Class Inheritance
All Implemented Interfaces
org.apache.xerces.impl.dtd.models.ContentModelValidator
Imports
org.apache.xerces.impl.dtd.XMLContentSpec, org.apache.xerces.xni.QName

SimpleContentModel is a derivative of the abstract content model base class that handles a small set of simple content models that are just way overkill to give the DFA treatment.

This class handles the following scenarios:

These all involve a unary operation with one element type, or a binary operation with two elements. These are very simple and can be checked in a simple way without a DFA and without the overhead of setting up a DFA for such a simple check.

Version
$Id: SimpleContentModel.java 699892 2008-09-28 21:08:27Z mrglavas $

Field Summary

Modifier and TypeField and Description
public static final short
CHOICE

CHOICE

private final QName
fFirstChild

The element decl pool indices of the first (and optional second) child node.

private final int
fOperator

The operation that this object represents.

private final QName
fSecondChild

The element decl pool indices of the first (and optional second) child node.

public static final short
SEQUENCE

SEQUENCE

Constructor Summary

AccessConstructor and Description
public
SimpleContentModel(short
The content model operator.
operator
,
QName
qualified name of the first child
firstChild
,
QName
qualified name of the second child
secondChild
)

Constructs a simple content model.

Method Summary

Modifier and TypeMethod and Description
public int

Returns:

The value -1 if fully valid, else the 0 based index of the child that first failed. If the value returned is equal to the number of children, then the specified children are valid but additional content is required to reach a valid ending state.
validate
(QName[]
The children of this element. Each integer is an index within the StringPool of the child element name. An index of -1 is used to indicate an occurrence of non-whitespace character data.
children
,
int
Offset into the array where the children starts.
offset
,
int
The number of entries in the children array.
length
)

Implements org.apache.xerces.impl.dtd.models.ContentModelValidator.validate.

Check that the specified content is valid according to this content model.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

CHOICEback to summary
public static final short CHOICE

CHOICE

fFirstChildback to summary
private final QName fFirstChild

The element decl pool indices of the first (and optional second) child node. The operation code tells us whether the second child is used or not.

fOperatorback to summary
private final int fOperator

The operation that this object represents. Since this class only does simple contents, there is only ever a single operation involved (i.e. the children of the operation are always one or two leafs.) This is one of the XMLDTDParams.CONTENTSPECNODE_XXX values.

fSecondChildback to summary
private final QName fSecondChild

The element decl pool indices of the first (and optional second) child node. The operation code tells us whether the second child is used or not.

SEQUENCEback to summary
public static final short SEQUENCE

SEQUENCE

Constructor Detail

SimpleContentModelback to summary
public SimpleContentModel(short operator, QName firstChild, QName secondChild)

Constructs a simple content model.

Parameters
operator:short

The content model operator.

firstChild:QName

qualified name of the first child

secondChild:QName

qualified name of the second child

Method Detail

validateback to summary
public int validate(QName[] children, int offset, int length)

Implements org.apache.xerces.impl.dtd.models.ContentModelValidator.validate.

Check that the specified content is valid according to this content model. This method can also be called to do 'what if' testing of content models just to see if they would be valid.

A value of -1 in the children array indicates a PCDATA node. All other indexes will be positive and represent child elements. The count can be zero, since some elements have the EMPTY content model and that must be confirmed.

Parameters
children:QName[]

The children of this element. Each integer is an index within the StringPool of the child element name. An index of -1 is used to indicate an occurrence of non-whitespace character data.

offset:int

Offset into the array where the children starts.

length:int

The number of entries in the children array.

Returns:int

The value -1 if fully valid, else the 0 based index of the child that first failed. If the value returned is equal to the number of children, then the specified children are valid but additional content is required to reach a valid ending state.