org.jfree.layouting.layouter.feed
Interface InputFeed
- StatefullComponent
- DefaultInputFeed
public interface InputFeed
The input feed shields the internal processing from users errors. It
implements a state maschine, which checks that all documents are well formed
and which does not allow users to manipulate the resulting document tree
directly.
An input feed collects all data for elements and other nodes and forwards
them to the normalizer. The normalizer is the first stage of the content
layouting and processing.
Pagination ability is not propagated back to the caller. A caller will not
normaly know whether a certain input caused a pagebreak. However, especially
in the cases where only one page should be processed, we allow the detection
of page breaks using a boolean flag. (Which is also used to detect loops.)
The flag is reset on each call to 'startElement', 'startDocument',
'endElement', 'endDocument' and 'addText'. Attribute modifications have no
effect on that flag (as these calls are accumulated into one big supercall
before passing them to the normalizer.)
Processing the meta-info also has no effect on the page-break flag, as meta-
info is processed before the content is processed.
addDocumentAttribute
public void addDocumentAttribute(String name,
Object attr)
throws InputFeedException
Adds document attributes. Document attributes hold object factories and
document wide resources which appear only once.
getCurrentNormalizer
public Normalizer getCurrentNormalizer()
Warning; This method is needed internally, mess with it from the outside
and you will run into trouble. The normalizer is a statefull component and
any call to it may mess up the state. From there on, 'Abandon every hope,
ye who enter here'.
isPagebreakEncountered
public boolean isPagebreakEncountered()
resetPageBreakFlag
public void resetPageBreakFlag()
setAttribute
public void setAttribute(String namespace,
String name,
Object attr)
throws InputFeedException
setMetaNodeAttribute
public void setMetaNodeAttribute(String name,
Object attr)
throws InputFeedException
Defines an attribute for the meta-nodes. For each meta node, at least the
'type' attribute (namespace: LibLayout) should be defined.
startDocument
public void startDocument()
throws InputFeedException
Starts the document processing. This is the first method to call. After
calling this method, the meta-data should be fed into the inputfeed.
startElement
public void startElement(String namespace,
String name)
throws InputFeedException
startMetaInfo
public void startMetaInfo()
throws InputFeedException
Signals, that meta-data follows. Calling this method is only valid directly
after startDocument has been called.
startMetaNode
public void startMetaNode()
throws InputFeedException
Starts a new meta-node structure. Meta-Nodes are used to hold content that
can appear more than once (like stylesheet declarations).
For now, only stylesheet declarations are defined as meta-node content;
more content types will surely arise in the future.
Calling this method is only valid after 'startMetaInfo' has been called.