Package org.apache.fop.fo
Class XMLObj
- java.lang.Object
-
- org.apache.fop.fo.FONode
-
- org.apache.fop.fo.XMLObj
-
- All Implemented Interfaces:
java.lang.Cloneable
,java.util.EventListener
,ContentHandlerFactory.ObjectBuiltListener
- Direct Known Subclasses:
SVGObj
,UnknownXMLObj
public abstract class XMLObj extends FONode implements ContentHandlerFactory.ObjectBuiltListener
Abstract class modelling generic, non-XSL-FO XML objects. Such objects are stored in a DOM.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.fop.fo.FONode
FONode.FONodeIterator, FONode.GatherContextInfoFunction
-
-
Field Summary
Fields Modifier and Type Field Description private org.xml.sax.Attributes
attr
protected org.w3c.dom.Document
doc
DOM document containing this nodeprotected org.w3c.dom.Element
element
DOM element representing this nodeprotected java.lang.String
name
Name of the nodeprivate static java.util.HashMap
ns
-
Fields inherited from class org.apache.fop.fo.FONode
FO_URI, FOX_URI, locator, log, nodeChangeBarList, parent, siblings, startOfNodeChangeBarList
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addChildNode(FONode child)
Adds a node as a child of this node.void
addElement(org.w3c.dom.Document doc, org.w3c.dom.Element parent)
Add an element to the DOM documentvoid
buildTopLevel(org.w3c.dom.Document doc, org.w3c.dom.Element svgRoot)
Add the top-level element to the DOM documentprotected void
characters(char[] data, int start, int length, PropertyList pList, org.xml.sax.Locator locator)
Adds characters.org.w3c.dom.Document
createBasicDocument()
Create an empty DOM documentjava.awt.geom.Point2D
getDimension(java.awt.geom.Point2D view)
Returns the dimensions of the generated area in pts.org.w3c.dom.Document
getDOMDocument()
Length
getIntrinsicAlignmentAdjust()
Retrieve the intrinsic alignment-adjust of the child element.java.lang.String
getLocalName()
Returns the local name (i.e.void
notifyObjectBuilt(java.lang.Object obj)
Notifies the listener when the object is fully built.void
processNode(java.lang.String elementName, org.xml.sax.Locator locator, org.xml.sax.Attributes attlist, PropertyList propertyList)
Initialize the node with its name, location information, and attributes The attributes must be used immediately as the sax attributes will be altered for the next element.private static void
setAttributes(org.w3c.dom.Element element, org.xml.sax.Attributes attr)
protected void
validateChildNode(org.xml.sax.Locator loc, java.lang.String nsURI, java.lang.String localName)
Checks to make sure, during SAX processing of input document, that the incoming node is valid for this (parent) node (e.g., checking to see thatfo:table
is not an immediate child offo:root
) called fromFOTreeBuilder.startElement(String, String, String, Attributes)
before constructing the childFObj
.-
Methods inherited from class org.apache.fop.fo.FONode
addCharacters, attachSiblings, bind, canHaveMarkers, charIterator, clone, clone, collectDelimitedTextRanges, collectDelimitedTextRanges, createPropertyList, decorateWithContextInfo, endOfNode, errorText, finalizeNode, gatherContextInfo, getBuilderContext, getChangeBarList, getChildNodes, getChildNodes, getContentHandlerFactory, getContextInfo, getContextInfoAlt, getExtensionAttachment, getFOEventHandler, getFOValidationEventProducer, getLocator, getLocatorString, getLogger, getName, getName, getNameId, getNamespaceURI, getNodePrefix, getNodeString, getNormalNamespacePrefix, getParent, getRoot, getStructureTreeElement, getUserAgent, inMarker, invalidChildError, invalidChildError, invalidPropertyValueError, isBidiRangeBlockItem, isChangeBarElement, isDelimitedTextRangeBoundary, missingChildElementError, missingChildElementError, missingPropertyError, nodesOutOfOrderError, nodesOutOfOrderError, notSupportedChildError, removeChild, setLocator, setStructureTreeElement, startOfNode, tooManyNodesError, tooManyNodesError, tooManyNodesError, validateChildNode, warningText
-
-
-
-
Field Detail
-
attr
private org.xml.sax.Attributes attr
-
element
protected org.w3c.dom.Element element
DOM element representing this node
-
doc
protected org.w3c.dom.Document doc
DOM document containing this node
-
name
protected java.lang.String name
Name of the node
-
ns
private static java.util.HashMap ns
-
-
Method Detail
-
validateChildNode
protected void validateChildNode(org.xml.sax.Locator loc, java.lang.String nsURI, java.lang.String localName) throws ValidationException
Checks to make sure, during SAX processing of input document, that the incoming node is valid for this (parent) node (e.g., checking to see thatfo:table
is not an immediate child offo:root
) called fromFOTreeBuilder.startElement(String, String, String, Attributes)
before constructing the childFObj
.
Here, blocks XSL-FO's from having non-FO parents.- Overrides:
validateChildNode
in classFONode
- Parameters:
loc
- location in the FO source filensURI
- namespace of incoming nodelocalName
- name of the incoming node (without namespace prefix)- Throws:
ValidationException
- if incoming node not valid for parent
-
processNode
public void processNode(java.lang.String elementName, org.xml.sax.Locator locator, org.xml.sax.Attributes attlist, PropertyList propertyList) throws FOPException
Initialize the node with its name, location information, and attributes The attributes must be used immediately as the sax attributes will be altered for the next element.- Overrides:
processNode
in classFONode
- Parameters:
elementName
- element name (e.g., "fo:block")locator
- Locator object (ignored by default)attlist
- Collection of attributes passed to us from the parser.propertyList
- the property list of the parent node- Throws:
FOPException
- for errors or inconsistencies in the attributes
-
getDOMDocument
public org.w3c.dom.Document getDOMDocument()
- Returns:
- DOM document representing this foreign XML
-
getDimension
public java.awt.geom.Point2D getDimension(java.awt.geom.Point2D view)
Returns the dimensions of the generated area in pts.- Parameters:
view
- Point2D instance to receive the dimensions- Returns:
- the requested dimensions in pts.
-
getIntrinsicAlignmentAdjust
public Length getIntrinsicAlignmentAdjust()
Retrieve the intrinsic alignment-adjust of the child element.- Returns:
- the intrinsic alignment-adjust.
-
getLocalName
public java.lang.String getLocalName()
Returns the local name (i.e. without namespace prefix) of the node- Specified by:
getLocalName
in classFONode
- Returns:
- the local name of this node
-
addElement
public void addElement(org.w3c.dom.Document doc, org.w3c.dom.Element parent)
Add an element to the DOM document- Parameters:
doc
- DOM document to which to add an elementparent
- the parent element of the element that is being added
-
setAttributes
private static void setAttributes(org.w3c.dom.Element element, org.xml.sax.Attributes attr)
-
buildTopLevel
public void buildTopLevel(org.w3c.dom.Document doc, org.w3c.dom.Element svgRoot)
Add the top-level element to the DOM document- Parameters:
doc
- DOM documentsvgRoot
- non-XSL-FO element to be added as the root of this document
-
createBasicDocument
public org.w3c.dom.Document createBasicDocument()
Create an empty DOM document- Returns:
- DOM document
-
addChildNode
protected void addChildNode(FONode child)
Adds a node as a child of this node. The default implementation of this method just ignores any child node being added.- Overrides:
addChildNode
in classFONode
- Parameters:
child
- child node to be added to the childNodes of this node
-
characters
protected void characters(char[] data, int start, int length, PropertyList pList, org.xml.sax.Locator locator) throws FOPException
Adds characters. Does nothing by default. To be overridden in subclasses that allow#PCDATA
content.- Overrides:
characters
in classFONode
- Parameters:
data
- array of characters containing text to be addedstart
- starting array element to addlength
- number of elements to addpList
- currently applicable PropertyListlocator
- location in the XSL-FO source file.- Throws:
FOPException
- if there's a problem during processing
-
notifyObjectBuilt
public void notifyObjectBuilt(java.lang.Object obj)
Notifies the listener when the object is fully built.- Specified by:
notifyObjectBuilt
in interfaceContentHandlerFactory.ObjectBuiltListener
- Parameters:
obj
- the newly built object
-
-