Class Marker

All Implemented Interfaces:
Cloneable, Constants

public class Marker extends FObjMixed
Class modelling the marker fo:markerobject.
  • Constructor Details

    • Marker

      public Marker(FONode parent)
      Create a marker fo.
      Parameters:
      parent - the parent FONode
  • Method Details

    • bind

      public void bind(PropertyList pList) throws FOPException
      Bind property values from the property list to the FO node. Must be overridden in all FObj subclasses that have properties applying to it.
      Overrides:
      bind in class FObj
      Parameters:
      pList - the PropertyList where the properties can be found.
      Throws:
      FOPException - if there is a problem binding the values
    • getPropertyListFor

      protected Marker.MarkerPropertyList getPropertyListFor(FONode foNode)
      Retrieve the property list of the given FONode descendant
      Parameters:
      foNode - the FONode whose property list is requested
      Returns:
      the Marker.MarkerPropertyList for the given node
    • startOfNode

      public void startOfNode()
      Called after processNode() is called. Subclasses can do additional processing.
      Overrides:
      startOfNode in class FObj
    • endOfNode

      public void endOfNode() throws FOPException
      Primarily used for making final content model validation checks and/or informing the FOEventHandler that the end of this FO has been reached. The default implementation simply calls FONode.finalizeNode(), without sending any event to the FOEventHandler.

      Note: the recommended way to override this method in subclasses is

      super.endOfNode(); // invoke finalizeNode()

      getFOEventHandler().endXXX(); // send endOfNode() notification

      Overrides:
      endOfNode in class FObjMixed
      Throws:
      FOPException - FOP Exception
    • validateChildNode

      protected void validateChildNode(Locator loc, String nsURI, 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 that fo:table is not an immediate child of fo:root) called from FOTreeBuilder.startElement(String, String, String, Attributes) before constructing the child FObj.
      XSL Content Model: (#PCDATA|%inline;|%block;)*
      Additionally: "An fo:marker may contain any formatting objects that are permitted as a replacement of any fo:retrieve-marker that retrieves the fo:marker's children." TODO implement "additional" constraint, possibly within fo:retrieve-marker
      Overrides:
      validateChildNode in class FONode
      Parameters:
      loc - location in the FO source file
      nsURI - namespace of incoming node
      localName - name of the incoming node (without namespace prefix)
      Throws:
      ValidationException - if incoming node not valid for parent
    • inMarker

      protected boolean inMarker()
      Indicates whether this node is a child of an fo:marker.
      Overrides:
      inMarker in class FONode
      Returns:
      true if this node is a child of an fo:marker
    • getMarkerClassName

      public String getMarkerClassName()
      Returns:
      the "marker-class-name" property
    • getLocalName

      public String getLocalName()
      Returns the local name (i.e. without namespace prefix) of the node
      Specified by:
      getLocalName in class FONode
      Returns:
      the local name of this node
    • getNameId

      public int getNameId()
      Returns the Constants class integer value of this node
      Overrides:
      getNameId in class FONode
      Returns:
      Constants.FO_MARKER
    • toString

      public String toString()
      Overrides:
      toString in class FObj