xmltorng.i2s.impl
Class InterleavePatternCategoryImpl

java.lang.Object
  extended by xmltorng.i2s.impl.InterleavePatternCategoryImpl
All Implemented Interfaces:
PatternCategory

public final class InterleavePatternCategoryImpl
extends java.lang.Object
implements PatternCategory

An interleave pattern category is a pattern category for interleave patterns whose child patterns are repeatable or not repeatable, optional or required refs. May also contain attributes and/or text. Formally : attribute ::= attributes ::= attribute | ( attribute+ ) element ::= any zerorOrMoreElement ::= element | ( element ) | ( element ) | ( element ) | ( element ) interleave ::= zeroOrMoreElement | ( zerorOrMoreElement+ ) elementsAndText ::= interleave | ( interleave ) content ::= elementsAndText | ( attributes elementsAndText ) Additional constraint : an element with a given name may appear at most in one child pattern.


Constructor Summary
InterleavePatternCategoryImpl()
           
InterleavePatternCategoryImpl(AttributesPatternCategory attributesPatternCategory, boolean hasText)
           
InterleavePatternCategoryImpl(ChoicePatternCategory patternCategory, AttributesPatternCategory attributesPatternCategory, boolean hasText)
           
InterleavePatternCategoryImpl(GroupPatternCategory patternCategory, AttributesPatternCategory attributesPatternCategory, boolean hasText)
           
 
Method Summary
 boolean addPattern(Name[] attributeNames, boolean hasText, RepeatableName[] repeatableElementNames)
          Add a pattern to this pattern category.
 AttributesPatternCategory attributesPatternCategory()
           
 Pattern fullPattern(java.util.Map fromNameToElementDefinition)
          Return a pattern that meets all the entered patterns.
 boolean hasText()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InterleavePatternCategoryImpl

public InterleavePatternCategoryImpl()

InterleavePatternCategoryImpl

public InterleavePatternCategoryImpl(AttributesPatternCategory attributesPatternCategory,
                                     boolean hasText)

InterleavePatternCategoryImpl

public InterleavePatternCategoryImpl(ChoicePatternCategory patternCategory,
                                     AttributesPatternCategory attributesPatternCategory,
                                     boolean hasText)

InterleavePatternCategoryImpl

public InterleavePatternCategoryImpl(GroupPatternCategory patternCategory,
                                     AttributesPatternCategory attributesPatternCategory,
                                     boolean hasText)
Method Detail

attributesPatternCategory

public AttributesPatternCategory attributesPatternCategory()

hasText

public boolean hasText()

fullPattern

public Pattern fullPattern(java.util.Map fromNameToElementDefinition)
Description copied from interface: PatternCategory
Return a pattern that meets all the entered patterns. May fail, then return null. If successfull then may use and update the given map between element name and element definition.

Specified by:
fullPattern in interface PatternCategory

addPattern

public boolean addPattern(Name[] attributeNames,
                          boolean hasText,
                          RepeatableName[] repeatableElementNames)
Description copied from interface: PatternCategory
Add a pattern to this pattern category. The pattern is given as a text presence flag, an attribute name set and an element name sequence, where each element may or may not be repeated. Returns true in case of success or if the pattern category already includes the pattern. Returns false if the pattern is out of the pattern category but the pattern category might be affected in that case too.

Specified by:
addPattern in interface PatternCategory