|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.axiom.om.impl.llom.OMNodeImpl
org.apache.axiom.om.impl.llom.OMElementImpl
org.apache.axiom.om.impl.llom.OMSourcedElementImpl
public class OMSourcedElementImpl
Element backed by an arbitrary data source. When necessary, this element will be expanded by creating a parser from the data source.
Whenever methods are added to the base OMElementImpl
class the corresponding methods must be added to this class (there's a unit test to verify that
this has been done, just to make sure nothing gets accidentally broken). If the method only
requires the element name and/or namespace information, the base class method can be called
directly. Otherwise, the element must be expanded into a full OM tree (by calling the forceExpand() method) before the base class method is called. This will typically involve a
heavy overhead penalty, so should be avoided if possible.
| Field Summary |
|---|
| Fields inherited from class org.apache.axiom.om.impl.llom.OMElementImpl |
|---|
attributes, DEFAULT_DEFAULT_NS_OBJECT, firstChild, lastChild, localName, namespaces, noPrefixNamespaceCounter, ns, qName |
| Fields inherited from class org.apache.axiom.om.impl.llom.OMNodeImpl |
|---|
builder, done, factory, nextSibling, nodeType, parent, previousSibling |
| Fields inherited from interface org.apache.axiom.om.OMNode |
|---|
CDATA_SECTION_NODE, COMMENT_NODE, DTD_NODE, ELEMENT_NODE, ENTITY_REFERENCE_NODE, PI_NODE, SPACE_NODE, TEXT_NODE |
| Constructor Summary | |
|---|---|
OMSourcedElementImpl(javax.xml.namespace.QName qName,
OMFactory factory,
OMDataSource source)
Constructor that takes a QName instead of the local name and the namespace seperately |
|
OMSourcedElementImpl(java.lang.String localName,
OMNamespace ns,
OMContainer parent,
OMFactory factory)
|
|
OMSourcedElementImpl(java.lang.String localName,
OMNamespace ns,
OMContainer parent,
OMXMLParserWrapper builder,
OMFactory factory)
|
|
OMSourcedElementImpl(java.lang.String localName,
OMNamespace ns,
OMFactory factory)
|
|
OMSourcedElementImpl(java.lang.String localName,
OMNamespace ns,
OMFactory factory,
OMDataSource source)
Constructor. |
|
| Method Summary | |
|---|---|
OMAttribute |
addAttribute(OMAttribute attr)
Inserts an attribute to this element. |
OMAttribute |
addAttribute(java.lang.String attributeName,
java.lang.String value,
OMNamespace namespace)
Creates an OMAttributeImpl instance out of the given arguments and
inserts that attribute to this element. |
void |
addChild(OMNode omNode)
Adds child to the element. |
void |
build()
Parses this node and builds the object structure in memory. |
void |
buildNext()
Forces the parser to proceed, if parser has not yet finished with the XML input. |
void |
buildWithAttachments()
Parses this node and builds the object structure in memory. |
OMElement |
cloneOMElement()
Clones this element. |
OMNamespace |
declareDefaultNamespace(java.lang.String uri)
We use "" to store the default namespace of this element. |
OMNamespace |
declareNamespace(OMNamespace namespace)
Declares a namespace with the element as its scope. |
OMNamespace |
declareNamespace(java.lang.String uri,
java.lang.String prefix)
Creates a namespace in the current element scope. |
OMNode |
detach()
Removes this information item and its children, from the model completely. |
void |
discard()
Method discard. |
OMNamespace |
findNamespace(java.lang.String uri,
java.lang.String prefix)
Finds a namespace with the given uri and prefix, in the scope of the document. |
OMNamespace |
findNamespaceURI(java.lang.String prefix)
Checks for a namespace in the context of this element with the given prefix and returns the relevant namespace object, if available. |
java.util.Iterator |
getAllAttributes()
Returns a List of OMAttributes. |
java.util.Iterator |
getAllDeclaredNamespaces()
Method getAllDeclaredNamespaces. |
OMAttribute |
getAttribute(javax.xml.namespace.QName qname)
Returns a named attribute if present. |
java.lang.String |
getAttributeValue(javax.xml.namespace.QName qname)
Returns a named attribute's value, if present. |
OMXMLParserWrapper |
getBuilder()
Method getBuilder. |
java.util.Iterator |
getChildElements()
Returns a filtered list of children - just the elements. |
java.util.Iterator |
getChildren()
Returns a collection of this element. |
java.util.Iterator |
getChildrenWithLocalName(java.lang.String localName)
Returns an iterator for child nodes matching the local name. |
java.util.Iterator |
getChildrenWithName(javax.xml.namespace.QName elementQName)
Searches for children with a given QName and returns an iterator to traverse through the OMNodes. |
java.util.Iterator |
getChildrenWithNamespaceURI(java.lang.String uri)
Returns an iterator for child nodes matching the namespace uri. |
OMDataSource |
getDataSource()
Provide access to the data source encapsulated in OMSourcedElement. |
OMNamespace |
getDefaultNamespace()
This will retrieve the default namespace of this element, if available. |
OMElement |
getFirstChildWithName(javax.xml.namespace.QName elementQName)
Method getFirstChildWithName. |
OMElement |
getFirstElement()
Gets first element. |
OMNode |
getFirstOMChild()
Method getFirstOMChild. |
int |
getLineNumber()
|
java.lang.String |
getLocalName()
Method getLocalName. |
OMNamespace |
getNamespace()
Method getNamespace. |
OMNode |
getNextOMSibling()
Gets the next sibling. |
javax.xml.namespace.QName |
getQName()
Method getQName. |
java.lang.String |
getText()
Selects all the text children and concatenates them to a single string. |
javax.xml.namespace.QName |
getTextAsQName()
OMText can contain its information as a QName as well. |
java.lang.String |
getTrimmedText()
Returns the concatination string of TRIMMED values of all OMText child nodes of this element. |
int |
getType()
Gets the type of node, as this is the super class of all the nodes. |
javax.xml.stream.XMLStreamReader |
getXMLStreamReader()
Method getXMLStreamReader. |
javax.xml.stream.XMLStreamReader |
getXMLStreamReaderWithoutCaching()
Method getXMLStreamReaderWithoutCaching. |
void |
internalSerialize(javax.xml.stream.XMLStreamWriter writer)
Method internalSerialize. |
protected void |
internalSerialize(javax.xml.stream.XMLStreamWriter writer,
boolean cache)
|
void |
internalSerializeAndConsume(javax.xml.stream.XMLStreamWriter writer)
This method serializes and consumes without building the object structure in memory. |
boolean |
isComplete()
Method isComplete. |
boolean |
isExpanded()
Check if element has been expanded into tree. |
protected void |
notifyChildComplete()
This method will be called when one of the children becomes complete. |
void |
removeAttribute(OMAttribute attr)
Method removeAttribute. |
javax.xml.namespace.QName |
resolveQName(java.lang.String qname)
Converts a prefix:local qname string into a proper QName, evaluating it in the OMElement context. |
void |
serialize(java.io.OutputStream output)
Serializes the node with caching. |
void |
serialize(java.io.OutputStream output,
OMOutputFormat format)
Serializes the node with caching. |
void |
serialize(java.io.Writer writer)
Serializes the node with caching. |
void |
serialize(java.io.Writer writer,
OMOutputFormat format)
Serializes the node with caching. |
void |
serialize(javax.xml.stream.XMLStreamWriter xmlWriter)
Serializes the node with caching. |
void |
serializeAndConsume(java.io.OutputStream output)
Serializes the node without caching. |
void |
serializeAndConsume(java.io.OutputStream output,
OMOutputFormat format)
Serializes the node without caching. |
void |
serializeAndConsume(java.io.Writer writer)
Serializes the node without caching. |
void |
serializeAndConsume(java.io.Writer writer,
OMOutputFormat format)
Serializes the node without caching. |
void |
serializeAndConsume(javax.xml.stream.XMLStreamWriter xmlWriter)
Serializes the node without caching. |
void |
setBuilder(OMXMLParserWrapper wrapper)
Method setBuilder. |
void |
setComplete(boolean value)
setComplete override The OMSourcedElement has its own isolated builder/reader during the expansion process. |
OMDataSource |
setDataSource(OMDataSource dataSource)
setOMDataSource |
void |
setFirstChild(OMNode node)
Method setFirstChild. |
void |
setLastChild(OMNode omNode)
forcefully set the last element in this parent element |
void |
setLineNumber(int lineNumber)
|
void |
setLocalName(java.lang.String localName)
Method setLocalName. |
void |
setNamespace(OMNamespace namespace)
Method setNamespace. |
void |
setNamespaceWithNoFindInCurrentScope(OMNamespace namespace)
This will not search the namespace in the scope nor will declare in the current element, as in setNamespace(OMNamespace). |
void |
setText(javax.xml.namespace.QName text)
Sets the text, as a QName, of the given element. |
void |
setText(java.lang.String text)
Sets the text of the given element. |
java.lang.String |
toString()
This is a convenience method only. |
java.lang.String |
toStringWithConsume()
This is a convenience method only. |
| Methods inherited from class org.apache.axiom.om.impl.llom.OMNodeImpl |
|---|
close, getOMFactory, getParent, getPreviousOMSibling, importNode, insertSiblingAfter, insertSiblingBefore, setNextOMSibling, setParent, setPreviousOMSibling, setType |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.apache.axiom.om.OMNode |
|---|
close, getOMFactory, getParent, getPreviousOMSibling, insertSiblingAfter, insertSiblingBefore |
| Constructor Detail |
|---|
public OMSourcedElementImpl(java.lang.String localName,
OMNamespace ns,
OMFactory factory,
OMDataSource source)
localName - ns - factory - source -
public OMSourcedElementImpl(javax.xml.namespace.QName qName,
OMFactory factory,
OMDataSource source)
qName - factory - source -
public OMSourcedElementImpl(java.lang.String localName,
OMNamespace ns,
OMContainer parent,
OMFactory factory)
public OMSourcedElementImpl(java.lang.String localName,
OMNamespace ns,
OMContainer parent,
OMXMLParserWrapper builder,
OMFactory factory)
public OMSourcedElementImpl(java.lang.String localName,
OMNamespace ns,
OMFactory factory)
| Method Detail |
|---|
public boolean isExpanded()
isExpanded in interface OMSourcedElementtrue if expanded, false if notpublic java.util.Iterator getChildElements()
OMElementImpl
getChildElements in interface OMElementgetChildElements in class OMElementImplOMContainer.getChildren(),
OMContainer.getChildrenWithName(javax.xml.namespace.QName)
public OMNamespace declareNamespace(java.lang.String uri,
java.lang.String prefix)
OMElementImpl
declareNamespace in interface OMElementdeclareNamespace in class OMElementImpluri - The namespace to declare in the current scope. The caller is expected to
ensure that the URI is a valid namespace name.prefix - The prefix to associate with the given namespace. The caller is expected to
ensure that this is a valid XML prefix. If "" is given, first this will check
for an existing namespace with the same uri. If not found, a prefix will be
auto-generated.
OMElement.declareNamespace(OMNamespace),
OMElement.findNamespace(String, String),
OMElement.getAllDeclaredNamespaces()public OMNamespace declareDefaultNamespace(java.lang.String uri)
OMElementImpl
declareDefaultNamespace in interface OMElementdeclareDefaultNamespace in class OMElementImplpublic OMNamespace getDefaultNamespace()
OMElement
getDefaultNamespace in interface OMElementgetDefaultNamespace in class OMElementImplpublic OMNamespace declareNamespace(OMNamespace namespace)
OMElement
declareNamespace in interface OMElementdeclareNamespace in class OMElementImplnamespace - The namespace to declare.
OMElement.declareNamespace(String, String),
OMElement.findNamespace(String, String),
OMElement.getAllDeclaredNamespaces()
public OMNamespace findNamespace(java.lang.String uri,
java.lang.String prefix)
OMElementImpl
findNamespace in interface OMElementfindNamespace in class OMElementImpluri - The namespace to look for. If this is specified, prefix should be
null.prefix - The prefix to look for. If this is specified, uri should be null.
OMElement.declareNamespace(String, String),
OMElement.declareNamespace(OMNamespace),
OMElement.getAllDeclaredNamespaces()public OMNamespace findNamespaceURI(java.lang.String prefix)
OMElement
findNamespaceURI in interface OMElementfindNamespaceURI in class OMElementImpl
public java.util.Iterator getAllDeclaredNamespaces()
throws OMException
OMElementImpl
getAllDeclaredNamespaces in interface OMElementgetAllDeclaredNamespaces in class OMElementImplOMExceptionOMElement.findNamespace(String, String),
OMElement.declareNamespace(String, String),
OMElement.declareNamespace(OMNamespace)public java.util.Iterator getAllAttributes()
OMElementImpl
getAllAttributes in interface OMElementgetAllAttributes in class OMElementImplOMElement.getAttribute(javax.xml.namespace.QName),
OMElement.addAttribute(OMAttribute),
OMElement.addAttribute(String, String, OMNamespace)public OMAttribute getAttribute(javax.xml.namespace.QName qname)
OMElementImpl
getAttribute in interface OMElementgetAttribute in class OMElementImplqname - the qualified name to search for
public java.lang.String getAttributeValue(javax.xml.namespace.QName qname)
OMElementImpl
getAttributeValue in interface OMElementgetAttributeValue in class OMElementImplqname - the qualified name to search for
public OMAttribute addAttribute(OMAttribute attr)
OMElementImplThe owner of the attribute is set to be the particular OMElement.
If the attribute already has an owner then the attribute is cloned (i.e. its name,
value and namespace are copied to a new attribute) and the new attribute is added
to the element. It's owner is then set to be the particular OMElement.
addAttribute in interface OMElementaddAttribute in class OMElementImplattr - The attribute to add.
OMAttributeImpl.equals(Object)
public OMAttribute addAttribute(java.lang.String attributeName,
java.lang.String value,
OMNamespace namespace)
OMElementImplOMAttributeImpl instance out of the given arguments and
inserts that attribute to this element. Implementor can decide as to insert this
in the front or at the end of set of attributes.
The owner of the attribute is set to be the particular OMElement.
If the attribute already has an owner then the attribute is cloned (i.e. its name,
value and namespace are copied to a new attribute) and the new attribute is added
to the element. It's owner is then set to be the particular OMElement.
addAttribute in interface OMElementaddAttribute in class OMElementImplattributeName - The name of the attributevalue - The value of the attributenamespace - The namespace of the attribute
OMAttributeImpl.equals(Object)public void removeAttribute(OMAttribute attr)
OMElementImpl
removeAttribute in interface OMElementremoveAttribute in class OMElementImplpublic void setBuilder(OMXMLParserWrapper wrapper)
OMElementImpl
setBuilder in interface OMElementsetBuilder in class OMElementImplpublic OMXMLParserWrapper getBuilder()
OMElementImpl
getBuilder in interface OMElementgetBuilder in class OMElementImplpublic void setFirstChild(OMNode node)
OMElementImpl
setFirstChild in interface OMContainerExsetFirstChild in interface OMElementsetFirstChild in class OMElementImplpublic void setLastChild(OMNode omNode)
OMContainerEx
setLastChild in interface OMContainerExsetLastChild in class OMElementImplpublic OMElement getFirstElement()
OMElementImpl
getFirstElement in interface OMElementgetFirstElement in class OMElementImplpublic javax.xml.stream.XMLStreamReader getXMLStreamReader()
OMElementImpl
getXMLStreamReader in interface OMElementgetXMLStreamReader in class OMElementImplOMElement.getXMLStreamReader()public javax.xml.stream.XMLStreamReader getXMLStreamReaderWithoutCaching()
OMElementImpl
getXMLStreamReaderWithoutCaching in interface OMElementgetXMLStreamReaderWithoutCaching in class OMElementImplOMElement.getXMLStreamReaderWithoutCaching()public void setText(java.lang.String text)
OMElementImpl
setText in interface OMElementsetText in class OMElementImplpublic void setText(javax.xml.namespace.QName text)
OMElementImpl
setText in interface OMElementsetText in class OMElementImplpublic java.lang.String getText()
OMElementImpl
getText in interface OMElementgetText in class OMElementImplpublic javax.xml.namespace.QName getTextAsQName()
OMElement
getTextAsQName in interface OMElementgetTextAsQName in class OMElementImplpublic java.lang.String getLocalName()
OMElementImpl
getLocalName in interface OMElementgetLocalName in class OMElementImplpublic void setLocalName(java.lang.String localName)
OMElementImpl
setLocalName in interface OMElementsetLocalName in class OMElementImpl
public OMNamespace getNamespace()
throws OMException
OMElementImpl
getNamespace in interface OMElementgetNamespace in class OMElementImplOMExceptionpublic void setNamespace(OMNamespace namespace)
OMElementImpl
setNamespace in interface OMElementsetNamespace in class OMElementImplpublic void setNamespaceWithNoFindInCurrentScope(OMNamespace namespace)
OMElement
setNamespaceWithNoFindInCurrentScope in interface OMElementsetNamespaceWithNoFindInCurrentScope in class OMElementImplpublic javax.xml.namespace.QName getQName()
OMElementImpl
getQName in interface OMElementgetQName in class OMElementImpl
public java.lang.String toStringWithConsume()
throws javax.xml.stream.XMLStreamException
OMElement
toStringWithConsume in interface OMElementtoStringWithConsume in class OMElementImpljavax.xml.stream.XMLStreamExceptionpublic javax.xml.namespace.QName resolveQName(java.lang.String qname)
OMElementImpl
resolveQName in interface OMElementresolveQName in class OMElementImplqname - prefixed qname string to resolve
public OMElement cloneOMElement()
OMElement
cloneOMElement in interface OMElementcloneOMElement in class OMElementImplpublic void setLineNumber(int lineNumber)
setLineNumber in interface OMElementsetLineNumber in class OMElementImplpublic int getLineNumber()
getLineNumber in interface OMElementgetLineNumber in class OMElementImpl
public void discard()
throws OMException
OMElementImpl
discard in interface OMNodediscard in class OMElementImplOMExceptionpublic int getType()
OMElementImpl
getType in interface OMNodegetType in class OMElementImplOMNodeImpl.setType(int)OMNodeImpl.setType(int)
public void internalSerialize(javax.xml.stream.XMLStreamWriter writer)
throws javax.xml.stream.XMLStreamException
OMElementImpl
internalSerialize in interface OMNodeExinternalSerialize in class OMElementImpljavax.xml.stream.XMLStreamException
protected void internalSerialize(javax.xml.stream.XMLStreamWriter writer,
boolean cache)
throws javax.xml.stream.XMLStreamException
internalSerialize in class OMElementImpljavax.xml.stream.XMLStreamException
public void internalSerializeAndConsume(javax.xml.stream.XMLStreamWriter writer)
throws javax.xml.stream.XMLStreamException
OMElementImpl
internalSerializeAndConsume in interface OMNodeExinternalSerializeAndConsume in class OMElementImpljavax.xml.stream.XMLStreamException
public void serialize(javax.xml.stream.XMLStreamWriter xmlWriter)
throws javax.xml.stream.XMLStreamException
OMNodeImpl
serialize in interface OMNodeserialize in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serialize(java.io.OutputStream output)
throws javax.xml.stream.XMLStreamException
OMNode
serialize in interface OMNodeserialize in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serialize(java.io.Writer writer)
throws javax.xml.stream.XMLStreamException
OMNode
serialize in interface OMNodeserialize in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serialize(java.io.OutputStream output,
OMOutputFormat format)
throws javax.xml.stream.XMLStreamException
OMNode
serialize in interface OMNodeserialize in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serialize(java.io.Writer writer,
OMOutputFormat format)
throws javax.xml.stream.XMLStreamException
OMNode
serialize in interface OMNodeserialize in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serializeAndConsume(javax.xml.stream.XMLStreamWriter xmlWriter)
throws javax.xml.stream.XMLStreamException
OMNodeImpl
serializeAndConsume in interface OMNodeserializeAndConsume in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serializeAndConsume(java.io.OutputStream output)
throws javax.xml.stream.XMLStreamException
OMNode
serializeAndConsume in interface OMNodeserializeAndConsume in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serializeAndConsume(java.io.Writer writer)
throws javax.xml.stream.XMLStreamException
OMNode
serializeAndConsume in interface OMNodeserializeAndConsume in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serializeAndConsume(java.io.OutputStream output,
OMOutputFormat format)
throws javax.xml.stream.XMLStreamException
OMNode
serializeAndConsume in interface OMNodeserializeAndConsume in class OMNodeImpljavax.xml.stream.XMLStreamException
public void serializeAndConsume(java.io.Writer writer,
OMOutputFormat format)
throws javax.xml.stream.XMLStreamException
OMNode
serializeAndConsume in interface OMNodeserializeAndConsume in class OMNodeImpljavax.xml.stream.XMLStreamExceptionpublic void addChild(OMNode omNode)
OMElementImpl
addChild in interface OMContaineraddChild in class OMElementImplpublic java.util.Iterator getChildrenWithName(javax.xml.namespace.QName elementQName)
OMElementImpl
getChildrenWithName in interface OMContainergetChildrenWithName in class OMElementImplelementQName - The QName specifying namespace and local name to match.
OMElement items that match the given QNamepublic java.util.Iterator getChildrenWithLocalName(java.lang.String localName)
OMContainer
getChildrenWithLocalName in interface OMContainergetChildrenWithLocalName in class OMElementImplOMElement items that match the given localNamepublic java.util.Iterator getChildrenWithNamespaceURI(java.lang.String uri)
OMContainer
getChildrenWithNamespaceURI in interface OMContainergetChildrenWithNamespaceURI in class OMElementImplOMElement items that match the given uri
public OMElement getFirstChildWithName(javax.xml.namespace.QName elementQName)
throws OMException
OMElementImpl
getFirstChildWithName in interface OMContainergetFirstChildWithName in class OMElementImplelementQName - The QName to use for matching.
OMException - Could indirectly trigger building of child nodes.OMContainer.getChildrenWithName(javax.xml.namespace.QName)public java.util.Iterator getChildren()
OMElementImpl
getChildren in interface OMContainergetChildren in class OMElementImplOMContainer.getFirstChildWithName(javax.xml.namespace.QName),
OMContainer.getChildrenWithName(javax.xml.namespace.QName)public OMNode getFirstOMChild()
OMElementImpl
getFirstOMChild in interface OMContainergetFirstOMChild in class OMElementImplpublic void buildNext()
OMElementImpl
buildNext in interface OMContainerbuildNext in class OMElementImpl
public OMNode detach()
throws OMException
OMElementImpl
detach in interface OMNodedetach in class OMElementImplOMException - If a node is not complete, the detach can trigger further parsing, which may
cause an exception.
public OMNode getNextOMSibling()
throws OMException
OMElementImpl
getNextOMSibling in interface OMNodegetNextOMSibling in class OMElementImplOMExceptionpublic java.lang.String getTrimmedText()
OMElementImpl
getTrimmedText in class OMElementImplpublic boolean isComplete()
OMElementImpl
isComplete in interface OMContainerisComplete in interface OMNodeisComplete in class OMElementImplpublic java.lang.String toString()
OMElement
toString in interface OMElementtoString in class OMElementImplpublic void buildWithAttachments()
OMNodeImpl
buildWithAttachments in interface OMNodebuildWithAttachments in class OMElementImpl
public void build()
throws OMException
OMNodeImpl
build in interface OMNodebuild in class OMElementImplOMExceptionprotected void notifyChildComplete()
OMElementImpl
notifyChildComplete in class OMElementImplpublic OMDataSource getDataSource()
getDataSource in interface OMSourcedElementpublic OMDataSource setDataSource(OMDataSource dataSource)
setDataSource in interface OMSourcedElementdataSource - new OMDataSource
public void setComplete(boolean value)
setComplete in interface OMContainerExsetComplete in interface OMNodeExsetComplete in class OMNodeImpl
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||