@NotThreadSafe public class PSPattern extends Object implements IPSElement, IPSHasID, IPSHasForeignElements, IPSHasIncludes, IPSHasLets, IPSHasRichGroup
<sch:pattern abstract="true" id="table"> <sch:rule context="$table"> <sch:assert test="$row"> The element <sch:name/> is a table. Tables contain rows. </sch:assert> </sch:rule> <sch:rule context="$row"> <sch:assert test="$entry"> The element <sch:name/> is a table row. Rows contain entries. </sch:assert> </sch:rule> </sch:pattern>When a pattern element has the attribute is-a with a value specifying the name of an abstract pattern, then the pattern is an instance of an abstract pattern. Such a pattern shall not contain any rule elements, but shall have param elements for all parameters used in the abstract pattern.
<sch:pattern is-a="table" id="HTML_Table"> <sch:param name="table" value="table"/> <sch:param name="row" value="tr"/> <sch:param name="entry" value="td|th"/> </sch:pattern> <sch:pattern is-a="table" id="CALS_Table"> <sch:param name="table" value="table"/> <sch:param name="row" value=".//row"/> <sch:param name="entry" value="cell"/> </sch:pattern> <sch:pattern is-a="table" id="calendar"> <sch:param name="table" value="calendar/year"/> <sch:param name="row" value="week"/> <sch:param name="entry" value="day"/> </sch:pattern>When creating an instance of an abstract pattern, the parameter values supplied by the param element replace the parameter references used in the abstract patterns. The examples above use the default query language binding in which the character $ is used as the delimiter for parameter references.
<sch:pattern id="HTML_table"> <sch:rule context="table"> <sch:assert test="tr"> The element table is a table. Tables containing rows. </sch:assert> </sch:rule> <sch:rule context="tr"> <sch:assert test="td|th"> The element tr is a table row. Rows contain entries. </sch:assert> </sch:rule> </sch:pattern> <sch:pattern id="CALS_table"> <sch:rule context="table"> <sch:assert test=".//row"> The element table is a table. Tables containing rows. </sch:assert> </sch:rule> <sch:rule context=".//row"> <sch:assert test="cell"> The element row is a table row. Rows contain entries. </sch:assert> </sch:rule> </sch:pattern> <sch:pattern id="calendar"> <sch:rule context="calendar/year"> <sch:assert test="week"> The element year is a table. Tables containing rows. </sch:assert> </sch:rule> <sch:rule context="week"> <sch:assert test="day"> The element week is a table row. Rows contain entries. </sch:assert> </sch:rule> </sch:pattern>
Constructor and Description |
---|
PSPattern() |
Modifier and Type | Method and Description |
---|---|
void |
addForeignAttribute(String sAttrName,
String sAttrValue) |
void |
addForeignAttributes(Map<String,String> aForeignAttrs) |
void |
addForeignElement(com.helger.commons.microdom.IMicroElement aForeignElement) |
void |
addForeignElements(List<com.helger.commons.microdom.IMicroElement> aForeignElements) |
void |
addInclude(PSInclude aInclude)
Add an include to this object.
|
void |
addLet(PSLet aLet)
Add a
PSLet element. |
void |
addP(PSP aP) |
void |
addParam(PSParam aParam) |
void |
addRule(PSRule aRule) |
List<IPSElement> |
getAllContentElements() |
Map<String,String> |
getAllForeignAttributes() |
List<com.helger.commons.microdom.IMicroElement> |
getAllForeignElements() |
List<PSInclude> |
getAllIncludes() |
List<PSLet> |
getAllLets() |
Map<String,String> |
getAllLetsAsMap() |
List<PSParam> |
getAllParams() |
List<PSP> |
getAllPs() |
List<PSRule> |
getAllRules() |
com.helger.commons.microdom.IMicroElement |
getAsMicroElement() |
String |
getID() |
String |
getIsA() |
PSRichGroup |
getRich() |
PSRichGroup |
getRichClone() |
int |
getRuleCount() |
PSRule |
getRuleOfID(String sID) |
PSTitle |
getTitle() |
boolean |
hasAnyInclude() |
boolean |
hasAnyLet() |
boolean |
hasAnyParam() |
boolean |
hasForeignAttributes() |
boolean |
hasForeignElements() |
boolean |
hasID() |
boolean |
hasRich() |
boolean |
hasTitle() |
boolean |
isAbstract() |
boolean |
isMinimal() |
boolean |
isValid(IPSErrorHandler aErrorHandler)
Check if this element is specified completely.
|
void |
setAbstract(boolean bAbstract) |
void |
setID(String sID)
Set an ID for this object.
|
void |
setIsA(String sIsA) |
void |
setRich(PSRichGroup aRich)
Overwrite any existing rich group.
|
void |
setTitle(PSTitle aTitle) |
String |
toString() |
void |
validateCompletely(IPSErrorHandler aErrorHandler)
Check if this element is specified completely.
|
public boolean isValid(@Nonnull IPSErrorHandler aErrorHandler)
IPSElement
isValid
in interface IPSElement
aErrorHandler
- The error handler where the error details are stored. May not be
null
.true
if all mandatory fields are set and the element
is valid, false
otherwise.public void validateCompletely(@Nonnull IPSErrorHandler aErrorHandler)
IPSElement
validateCompletely
in interface IPSElement
aErrorHandler
- The error handler where the error details are stored. May not be
null
.public boolean isMinimal()
isMinimal
in interface IPSElement
true
if this element conforms to the Schematron
minimal syntax, false
otherwise.public void addForeignElement(@Nonnull com.helger.commons.microdom.IMicroElement aForeignElement)
addForeignElement
in interface IPSHasForeignElements
public void addForeignElements(@Nonnull List<com.helger.commons.microdom.IMicroElement> aForeignElements)
addForeignElements
in interface IPSHasForeignElements
public boolean hasForeignElements()
hasForeignElements
in interface IPSHasForeignElements
@Nonnull @ReturnsMutableCopy public List<com.helger.commons.microdom.IMicroElement> getAllForeignElements()
getAllForeignElements
in interface IPSHasForeignElements
public void addForeignAttribute(@Nonnull String sAttrName, @Nonnull String sAttrValue)
addForeignAttribute
in interface IPSHasForeignAttributes
public void addForeignAttributes(@Nonnull Map<String,String> aForeignAttrs)
addForeignAttributes
in interface IPSHasForeignAttributes
public boolean hasForeignAttributes()
hasForeignAttributes
in interface IPSHasForeignAttributes
@Nonnull @ReturnsMutableCopy public Map<String,String> getAllForeignAttributes()
getAllForeignAttributes
in interface IPSHasForeignAttributes
public void setAbstract(boolean bAbstract)
public boolean isAbstract()
public void setID(@Nullable String sID)
IPSHasID
public boolean hasID()
public void setRich(@Nullable PSRichGroup aRich)
IPSHasRichGroup
setRich
in interface IPSHasRichGroup
aRich
- The new rich group to set. May be null
.public boolean hasRich()
hasRich
in interface IPSHasRichGroup
true
if a rich group is present, false
otherwise.@Nullable public PSRichGroup getRich()
getRich
in interface IPSHasRichGroup
null
if none is
present.@Nullable public PSRichGroup getRichClone()
getRichClone
in interface IPSHasRichGroup
null
if no rich group
is present at this object.public void addInclude(@Nonnull PSInclude aInclude)
IPSHasIncludes
addInclude
in interface IPSHasIncludes
aInclude
- The include to be added. May not be null
.public boolean hasAnyInclude()
hasAnyInclude
in interface IPSHasIncludes
true
if at least one include is present in this
object.@Nonnull @ReturnsMutableCopy public List<PSInclude> getAllIncludes()
getAllIncludes
in interface IPSHasIncludes
null
.public boolean hasTitle()
@Nonnegative public int getRuleCount()
public boolean hasAnyParam()
public void addLet(@Nonnull PSLet aLet)
IPSHasLets
PSLet
element.addLet
in interface IPSHasLets
aLet
- The let element to be added. May not be null
.public boolean hasAnyLet()
hasAnyLet
in interface IPSHasLets
true
if this object has at least on contained
PSLet
object.@Nonnull @ReturnsMutableCopy public List<PSLet> getAllLets()
getAllLets
in interface IPSHasLets
PSLet
elements. Never
null
.@Nonnull @ReturnsMutableCopy public Map<String,String> getAllLetsAsMap()
getAllLetsAsMap
in interface IPSHasLets
PSLet
elements as an ordered Map from
name to value. The order must match the declaration order! Never
null
.@Nonnull @ReturnsMutableCopy public List<IPSElement> getAllContentElements()
@Nonnull public com.helger.commons.microdom.IMicroElement getAsMicroElement()
getAsMicroElement
in interface IPSElement
null
.Copyright © 2014–2015 Philip Helger. All rights reserved.