Package eu.bandm.tools.xslt.base
Class MultiTypeNodeList
java.lang.Object
eu.bandm.tools.tdom.runtime.TypedNode<X>
eu.bandm.tools.tdom.runtime.TypedSubstantial<TypedExtension>
eu.bandm.tools.xslt.base.MultiTypeNodeList
- All Implemented Interfaces:
Cloneable
Holds the contents of one future result element, as long as it is incomplete
and the tdom element can not yet be constructed.
This can be (1) because the result element contains at least
one xslt element, or (2) at least one calculated attribute
(
Used in three roles: (1) Part of the xslt code. Here one particular instance is always the content model of one particular xslt element. This relation is realized non-invasively, but by
(2) During the evaluating process of the xslt code, as an intermediate storage, which will be transformed bottom-up and finally be replaced by a result element. There it acts as a "stack frame", and is our realization of "result tree fragments".
(3) As the top-level result of an xslt application.
AttributeValueTemplate
), or (3) one of its descendants does so.
Used in three roles: (1) Part of the xslt code. Here one particular instance is always the content model of one particular xslt element. This relation is realized non-invasively, but by
Templates.result_subtrees
.
(2) During the evaluating process of the xslt code, as an intermediate storage, which will be transformed bottom-up and finally be replaced by a result element. There it acts as a "stack frame", and is our realization of "result tree fragments".
(3) As the top-level result of an xslt application.
Some fields are only needed in role(2); this could be modelled as a sub-class.
The processing is supported by CombinedDumper
and CombinedVisitor
.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
The static info, how often a MixedContentContainer must be evaluated.static class
CallsMultiTypeNodeList.PCDataOnlyVisitor.action(String)
on all contained character data.Nested classes/interfaces inherited from class eu.bandm.tools.tdom.runtime.TypedNode
TypedNode.ParseListener<E extends TypedElement<?,
?>> -
Field Summary
Modifier and TypeFieldDescription(package private) AttributeChecks_valueTemplates
(package private) Map<NamespaceName,
MultiTypeNodeList.frequency> (package private) Attributes
(package private) Map<NamespaceName,
String> All attributes which come fromElement_xsl_attribute
.(package private) NamespaceName
(package private) MultiTypeNodeList.frequency
(package private) int
(package private) boolean
(package private) List<TypedEthereal>
Where to store Ethereals (PIs and Comments) when the list is still empty.(package private) List<TypedSubstantial>
(package private) MultiTypeNodeList
This field is only relevant when instance used as result frame in the evaluation process.(package private) MultiTypeNodeList
(package private) List<Transformation.XslAttributeSet>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
(package private) void
addCalculatedAttribute
(NamespaceName nn, String val) (package private) void
(package private) void
void
dump()
void
dump
(PrintStream p) void
encode
(EncodingOutputStream out, TypedExtension ext) Abstract fall-back method which MUST be overridden and always throws an Exception.static MultiTypeNodeList.frequency
Return the maximum frequency (constant < once < mixed < always).static MultiTypeNodeList.frequency
Return the minimum frequency (constant < once < mixed < always).ATTENTION does not travel transparently through embedded xslt elements; is inteded to collect only from result fragments.protected MultiTypeNodeList
Copies all data but NOT the subnodes, which must be done explicitly by caller.toString()
Methods inherited from class eu.bandm.tools.tdom.runtime.TypedSubstantial
dumpFollowingEthereals, dumpPrecedingEthereals, getFollowingEthereals, getPrecedingEthereals, readFollowingEthereals, readPrecedingEthereals
Methods inherited from class eu.bandm.tools.tdom.runtime.TypedNode
asBigDecimal, asBigDecimal, asBigDecimal, asBigDecimal, asBigInteger, asBigInteger, asBigInteger, asBigInteger, asBoolean, asBoolean, asDouble, asDouble, asDouble, asDouble, asFloat, asFloat, asFloat, asFloat, asHexInt, asHexInt, asHexInt, asHexInt, asInt, asInt, asInt, asInt, asLong, asLong, asLong, asLong, asTrimmedString, asTrimmedString, asTrimmedString, asTrimmedString, checkPlus, checkPlus, checkStar, checkStar, checkStrict, encode, encodeOptional, encodePlus, encodePlus, encodeStar, encodeStar, extractEthereals, getLocation, getPCData, setLocation, setLocation, setLocation
-
Field Details
-
parent
MultiTypeNodeList parentThis field is only relevant when instance used as result frame in the evaluation process. FIXME CHECK subclass?? OPT-declarations? -
index
int index -
proto
MultiTypeNodeList proto -
usedAttSets
List<Transformation.XslAttributeSet> usedAttSets -
f
-
atts
Attributes atts -
attCheckResults
AttributeChecks_valueTemplates attCheckResults -
calculatedAtts
Map<NamespaceName,String> calculatedAttsAll attributes which come fromElement_xsl_attribute
. -
isXslt
boolean isXslt -
constructor
NamespaceName constructor -
nodes
List<TypedSubstantial> nodes -
attFrequencies
Map<NamespaceName,MultiTypeNodeList.frequency> attFrequencies -
leadingEthereals
List<TypedEthereal> leadingEtherealsWhere to store Ethereals (PIs and Comments) when the list is still empty. Only active when used as a result frame.
-
-
Constructor Details
-
MultiTypeNodeList
public MultiTypeNodeList()
-
-
Method Details
-
f_max
public static MultiTypeNodeList.frequency f_max(MultiTypeNodeList.frequency f1, MultiTypeNodeList.frequency f2) Return the maximum frequency (constant < once < mixed < always). -
f_min
public static MultiTypeNodeList.frequency f_min(MultiTypeNodeList.frequency f1, MultiTypeNodeList.frequency f2) Return the minimum frequency (constant < once < mixed < always). -
addLeadingEthereal
-
append
-
addCalculatedAttribute
-
shallowCopy
Copies all data but NOT the subnodes, which must be done explicitly by caller. -
dump
public void dump() -
dump
-
getDeepPCData
ATTENTION does not travel transparently through embedded xslt elements; is inteded to collect only from result fragments.- Specified by:
getDeepPCData
in classTypedSubstantial<TypedExtension>
-
_getDeepPCData
-
toString
-
encode
Description copied from class:TypedNode
Abstract fall-back method which MUST be overridden and always throws an Exception.- Specified by:
encode
in classTypedNode<TypedExtension>
-