Class Section

All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
DetailSection, Group, ReportDefinition

public class Section extends Element
A report section is a collection of other elements and sections.

This implementation is not synchronized, to take care that you externally synchronize it when using multiple threads to modify instances of this class.

Trying to add a parent of an band as child to the band, will result in an exception.

The attribute and style expressions added to the element are considered unnamed and stateless. To define a named, statefull state expression, one would create an ordinary named expression or function and would then reference that expression from within a style or attribute expression.

Author:
Thomas Morgner
See Also:
  • Constructor Details

    • Section

      public Section()
      Constructs a new band (initially empty).
  • Method Details

    • addNode

      public void addNode(Node element)
      Adds a report element to the band.
      Parameters:
      element - the element that should be added
      Throws:
      NullPointerException - if the given element is null
      IllegalArgumentException - if the position is invalid, either negative or greater than the number of elements in this band or if the given element is a parent of this element.
    • addNode

      public void addNode(int position, Node element)
      Adds a report element to the band. The element will be inserted at the specified position.
      Parameters:
      position - the position where to insert the element
      element - the element that should be added
      Throws:
      NullPointerException - if the given element is null
      IllegalArgumentException - if the position is invalid, either negative or greater than the number of elements in this band or if the given element is a parent of this element.
    • addNodes

      public void addNodes(Collection elements)
      Adds a collection of elements to the band.
      Parameters:
      elements - the element collection.
      Throws:
      NullPointerException - if one of the given elements is null
      IllegalArgumentException - if one of the given element is a parent of this element.
    • getElementByName

      public Element getElementByName(String name)
      Returns the first element in the list that is known by the given name.
      Parameters:
      name - the element name.
      Returns:
      the first element with the specified name, or null if there is no such element.
      Throws:
      NullPointerException - if the given name is null.
    • removeNode

      public void removeNode(Node e)
      Removes an element from the band.
      Parameters:
      e - the element to be removed.
      Throws:
      NullPointerException - if the given element is null.
    • getNodes

      public List getNodes()
      Deprecated.
      use getElementArray() instead.
      Returns all child-elements of this band as immutable list.
      Returns:
      an immutable list of all registered elements for this band.
    • getNodeCount

      public int getNodeCount()
      Returns the number of elements in this band.
      Returns:
      the number of elements of this band.
    • getNodeArray

      public Node[] getNodeArray()
      Returns an array of the elements in the band. If the band is empty, an empty array is returned.

      For performance reasons, a shared cached instance is returned. Do not modify the returned array or live with the consquences.

      Returns:
      the elements.
    • getNode

      public Node getNode(int index)
      Returns the element stored add the given index.
      Parameters:
      index - the element position within this band
      Returns:
      the element
      Throws:
      IndexOutOfBoundsException - if the index is invalid.
    • toString

      public String toString()
      Returns a string representation of the band and all the elements it contains, useful mainly for debugging purposes.
      Overrides:
      toString in class Object
      Returns:
      a string representation of this band.
    • getOperationBefore

      public FlowControlOperation[] getOperationBefore()
    • getOperationAfter

      public FlowControlOperation[] getOperationAfter()
    • setOperationBefore

      public void setOperationBefore(FlowControlOperation[] before)
    • setOperationAfter

      public void setOperationAfter(FlowControlOperation[] ops)
    • addOperationAfter

      public void addOperationAfter(FlowControlOperation op)
    • addOperationBefore

      public void addOperationBefore(FlowControlOperation op)
    • isRepeat

      public boolean isRepeat()
    • setRepeat

      public void setRepeat(boolean repeat)
    • findFirstChild

      public Element findFirstChild(String uri, String tagName)
    • clone

      public Object clone() throws CloneNotSupportedException
      Overrides:
      clone in class Element
      Throws:
      CloneNotSupportedException