org.jfree.report
Class GroupList

java.lang.Object
  |
  +--org.jfree.report.GroupList
Direct Known Subclasses:
UnmodifiableGroupList

public class GroupList
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable

The group list is used to store groups in a ordered way. The less specific groups are guaranteed to be listed before the more specific subgroups.

Groups are ordered by comparing the declared fieldnames for the groups. A subgroup of an group must contain all fields from its parent plus at least one new field.

This implementation is not synchronized.

The group list cannot be empty. JFreeReport needs at least one group instance to work as expected. By default, this default instance does not define any fields (and therefore contains the complete report) and has no Bands defined (rendering it invisible). You cannot remove that group. Every attempt to remove the last group will recreates a new default group.

Author:
Thomas Morgner
See Also:
Serialized Form

Field Summary
static java.lang.String DEFAULT_GROUP_NAME
          The name of the automaticly created default group.
 
Constructor Summary
  GroupList()
          Constructs a new group list, with only a default group inside.
protected GroupList(GroupList list)
          Creates a new group list and copies the contents of the given grouplist.
 
Method Summary
 void add(Group o)
          Adds a group to the list.
 void addAll(java.util.Collection c)
          Adds all groups of the collection to this group list.
 void clear()
          Clears the list.
 java.lang.Object clone()
          Clones the group list and all contained groups.
 Group get(int i)
          Returns the group at a given position in the list.
 Group getGroupByName(java.lang.String name)
          Searches a group by its defined name.
protected  Group[] getGroupCache()
          Returns a direct reference to the group cache.
 ReportDefinition getReportDefinition()
          Returns the assigned report definition of the group.
 java.util.Iterator iterator()
          Returns an iterator for the groups of the list.
 boolean remove(Group o)
          Removes an group from the list.
 void setReportDefinition(ReportDefinition reportDefinition)
          Assigns the report definition to all groups in the list.
 int size()
          Returns the number of groups in the list.
 java.lang.String toString()
          Returns a string representation of the list (useful for debugging).
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_GROUP_NAME

public static final java.lang.String DEFAULT_GROUP_NAME
The name of the automaticly created default group.
Constructor Detail

GroupList

public GroupList()
Constructs a new group list, with only a default group inside.

GroupList

protected GroupList(GroupList list)
Creates a new group list and copies the contents of the given grouplist. If the given group list was assigned with a report definition, then the new group list will share that registration.
Parameters:
list - groups to add to the list.
Method Detail

get

public Group get(int i)
Returns the group at a given position in the list.
Parameters:
i - the position index (zero-based).
Returns:
the report group.

remove

public boolean remove(Group o)
Removes an group from the list.
Parameters:
o - the group that should be removed.
Returns:
a boolean indicating whether or not the object was removed.
Throws:
java.lang.NullPointerException - if the given group object is null.

clear

public void clear()
Clears the list.

add

public void add(Group o)
Adds a group to the list.
Parameters:
o - the group object.

addAll

public void addAll(java.util.Collection c)
Adds all groups of the collection to this group list. This method will result in a ClassCastException if the collection does not contain Group objects.
Parameters:
c - the collection that contains the groups.
Throws:
java.lang.NullPointerException - if the given collection is null.
ClassCastException - if the collection does not contain groups.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Clones the group list and all contained groups.
Overrides:
clone in class java.lang.Object
Returns:
a clone of this list.
Throws:
java.lang.CloneNotSupportedException - if cloning the element failed.
See Also:
Cloneable

iterator

public java.util.Iterator iterator()
Returns an iterator for the groups of the list.
Returns:
An iterator over all groups of the list.

size

public int size()
Returns the number of groups in the list.
Returns:
The number of groups in the list.

toString

public java.lang.String toString()
Returns a string representation of the list (useful for debugging).
Overrides:
toString in class java.lang.Object
Returns:
A string.

getGroupCache

protected Group[] getGroupCache()
Returns a direct reference to the group cache.
Returns:
the groups of this list as array.

getGroupByName

public Group getGroupByName(java.lang.String name)
Searches a group by its defined name. This method returns null, if the group was not found.
Parameters:
name - the name of the group.
Returns:
the group or null if not found.

setReportDefinition

public void setReportDefinition(ReportDefinition reportDefinition)
Assigns the report definition to all groups in the list.
Parameters:
reportDefinition - the report definition (maybe null).

getReportDefinition

public ReportDefinition getReportDefinition()
Returns the assigned report definition of the group.
Returns:
the report definition (maybe null).