## com.lowagie.text
Class Section

    java.lang.Object
      java.util.AbstractCollection<E>
          java.util.AbstractList<E>
              java.util.ArrayList
                  com.lowagie.text.Section

All Implemented Interfaces:
  Element, TextElementArray, java.io.Serializable, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, java.util.List, java.util.RandomAccess

Direct Known Subclasses:
  Chapter

    public class Section

extends java.util.ArrayList
implements TextElementArray

A `Section` is a part of a `Document` containing other `Section`s, `Paragraph`s, `List` and/or `Table`s.

Remark: you can not construct a `Section` yourself. You will have to ask an instance of `Section` to the `Chapter` or `Section` to which you want to add the new `Section`.

Example:

>      Paragraph title2 = new Paragraph("This is Chapter 2", FontFactory.getFont(FontFactory.HELVETICA, 18, Font.BOLDITALIC, new Color(0, 0, 255)));
>      Chapter chapter2 = new Chapter(title2, 2);
>      Paragraph someText = new Paragraph("This is some text");
>      chapter2.add(someText);
>      Paragraph title21 = new Paragraph("This is Section 1 in Chapter 2", FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0)));
>      Section section1 = chapter2.addSection(title21);
>      Paragraph someSectionText = new Paragraph("This is some silly paragraph in a chapter and/or section. It contains some text to test the functionality of Chapters and Section.");
>      section1.add(someSectionText);
>      Paragraph title211 = new Paragraph("This is SubSection 1 in Section 1 in Chapter 2", FontFactory.getFont(FontFactory.HELVETICA, 14, Font.BOLD, new Color(255, 0, 0)));
>      Section section11 = section1.addSection(40, title211, 2);
>      section11.add(someSectionText);

See Also:
  Serialized Form

Field Summary
`protected boolean` `bookmarkOpen` false if the bookmark children are not visible
`protected java.lang.String` `bookmarkTitle` The bookmark title if different from the content title
`protected float` `indentationLeft` The indentation of this section on the left side.
`protected float` `indentationRight` The indentation of this section on the right side.
`protected int` `numberDepth` This is the number of sectionnumbers that has to be shown before the section title.
`protected java.util.ArrayList` `numbers` This is the complete list of sectionnumbers of this section and the parents of this section.
`protected float` `sectionIndent` The additional indentation of the content of this section.
`protected int` `subsections` This is the number of subsections.
`protected Paragraph` `title` This is the title of this section.

Fields inherited from class java.util.AbstractList
`modCount`

Fields inherited from interface com.lowagie.text.Element

`ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_JUSTIFIED, ALIGN_JUSTIFIED_ALL, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, ALIGN_UNDEFINED, ANCHOR, ANNOTATION, AUTHOR, CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFBLOCK, CCITT_ENDOFLINE, CCITTG3_1D, CCITTG3_2D, CCITTG4, CELL, CHAPTER, CHUNK, CREATIONDATE, CREATOR, GRAPHIC, HEADER, IMGRAW, IMGTEMPLATE, JPEG, KEYWORDS, LIST, LISTITEM, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE`

Constructor Summary
`protected` `Section()` Constructs a new `Section`.
`(package private)` `Section(Paragraph title, int numberDepth)` Constructs a new `Section`.

Method Summary
`void` `add(int index, java.lang.Object o)` Adds a `Paragraph`, `List` or `Table` to this `Section`.
`boolean` `add(java.lang.Object o)` Adds a `Paragraph`, `List`, `Table` or another `Section` to this `Section`.
`boolean` `addAll(java.util.Collection collection)` Adds a collection of `Element`s to this `Section`.
`Section` `addSection(float indentation, Paragraph title)` Creates a `Section`, adds it to this `Section` and returns it.
`Section` `addSection(float indentation, Paragraph title, int numberDepth)` Creates a `Section`, adds it to this `Section` and returns it.
`Section` `addSection(float indentation, java.lang.String title)` Adds a `Section` to this `Section` and returns it.
`Section` `addSection(float indentation, java.lang.String title, int numberDepth)` Adds a `Section` to this `Section` and returns it.
`Section` `addSection(Paragraph title)` Creates a `Section`, adds it to this `Section` and returns it.
`Section` `addSection(Paragraph title, int numberDepth)` Creates a `Section`, add it to this `Section` and returns it.
`Section` `addSection(java.util.Properties attributes)` Creates a given `Section` following a set of attributes and adds it to this one.
`Section` `addSection(java.lang.String title)` Adds a `Section` to this `Section` and returns it.
`Section` `addSection(java.lang.String title, int numberDepth)` Adds a `Section` to this `Section` and returns it.
`int` `depth()` Returns the depth of this section.
`Paragraph` `getBookmarkTitle()` Gets the bookmark title.
`java.util.ArrayList` `getChunks()` Gets all the chunks in this element.
`float` `indentation()` Returns the indentation of the content of this `Section`.
`float` `indentationLeft()` Returns the indentation of this `Section` on the left side.
`float` `indentationRight()` Returns the indentation of this `Section` on the right side.
`boolean` `isBookmarkOpen()` Getter for property bookmarkOpen.
`boolean` `isChapter()` Checks if this object is a `Chapter`.
`boolean` `isSection()` Checks if this object is a `Section`.
`static boolean` `isTag(java.lang.String tag)` Checks if a given tag corresponds with this object.
`static boolean` `isTitle(java.lang.String tag)` Checks if a given tag corresponds with a title tag for this object.
`int` `numberDepth()` Returns the numberdepth of this `Section`.
`boolean` `process(ElementListener listener)` Processes the element by adding it (or the different parts) to an `ElementListener`.
`void` `set(java.util.Properties attributes)` Alters the attributes of this `Section`.
`void` `setBookmarkOpen(boolean bookmarkOpen)` Setter for property bookmarkOpen.
`void` `setBookmarkTitle(java.lang.String bookmarkTitle)` Sets the bookmark title.
`void` `setIndentation(float indentation)` Sets the indentation of the content of this `Section`.
`void` `setIndentationLeft(float indentation)` Sets the indentation of this `Section` on the left side.
`void` `setIndentationRight(float indentation)` Sets the indentation of this `Section` on the right side.
`void` `setNumberDepth(int numberDepth)` Sets the depth of the sectionnumbers that will be shown preceding the title.
`private void` `setNumbers(int number, java.util.ArrayList numbers)` Sets the number of this section.
`void` `setTitle(Paragraph title)` Sets the title of this section.
`Paragraph` `title()` Returns the title, preceeded by a certain number of sectionnumbers.
`int` `type()` Gets the type of the text element.

Methods inherited from class java.util.ArrayList
`addAll, clear, clone, contains, ensureCapacity, get, indexOf, isEmpty, lastIndexOf, remove, remove, removeRange, set, size, toArray, toArray, trimToSize`

Methods inherited from class java.util.AbstractList
`equals, hashCode, iterator, listIterator, listIterator, subList`

Methods inherited from class java.util.AbstractCollection
`containsAll, removeAll, retainAll, toString`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface com.lowagie.text.Element
`toString`

Methods inherited from interface java.util.List
`containsAll, equals, hashCode, iterator, listIterator, listIterator, removeAll, retainAll, subList`

Field Detail

### title

    protected Paragraph title

  This is the title of this section.

### numberDepth

    protected int numberDepth

  This is the number of sectionnumbers that has to be shown before the section title.

### indentationLeft

    protected float indentationLeft

  The indentation of this section on the left side.

### indentationRight

    protected float indentationRight

  The indentation of this section on the right side.

### sectionIndent

    protected float sectionIndent

  The additional indentation of the content of this section.

### subsections

    protected int subsections

  This is the number of subsections.

### numbers

    protected java.util.ArrayList numbers

  This is the complete list of sectionnumbers of this section and the parents of this section.

### bookmarkOpen

    protected boolean bookmarkOpen

  false if the bookmark children are not visible

### bookmarkTitle

    protected java.lang.String bookmarkTitle

  The bookmark title if different from the content title

Constructor Detail

### Section

    protected Section()

  Constructs a new `Section`.

### Section

    Section(Paragraph title,
            int numberDepth)

  Constructs a new `Section`.

  Parameters:
    `title` - a `Paragraph`
    `numberDepth` - the numberDepth

Method Detail

### setNumbers

    private void setNumbers(int number,
                            java.util.ArrayList numbers)

  Sets the number of this section.

  Parameters:
    `number` - the number of this section
    `numbers` - an `ArrayList`, containing the numbers of the Parent

### process

    public boolean process(ElementListener listener)

  Processes the element by adding it (or the different parts) to an `ElementListener`.

  Specified by:
    `process` in interface `Element`
  Parameters:
    `listener` - the `ElementListener`
  Returns:
    `true` if the element was processed successfully

### type

    public int type()

  Gets the type of the text element.

  Specified by:
    `type` in interface `Element`
  Returns:
    a type

### getChunks

    public java.util.ArrayList getChunks()

  Gets all the chunks in this element.

  Specified by:
    `getChunks` in interface `Element`
  Returns:
    an `ArrayList`

### add

    public void add(int index,
                    java.lang.Object o)

  Adds a `Paragraph`, `List` or `Table` to this `Section`.

  Specified by:
    `add` in interface `java.util.List`
  Overrides:
    `add` in class `java.util.ArrayList`
  Parameters:
    `index` - index at which the specified element is to be inserted
    `o` - an object of type `Paragraph`, `List` or `Table`=
  Throws:
    `java.lang.ClassCastException` - if the object is not a `Paragraph`, `List` or `Table`

### add

    public boolean add(java.lang.Object o)

  Adds a `Paragraph`, `List`, `Table` or another `Section` to this `Section`.

  Specified by:
    `add` in interface `TextElementArray`
  Specified by:
    `add` in interface `java.util.Collection`
  Specified by:
    `add` in interface `java.util.List`
  Overrides:
    `add` in class `java.util.ArrayList`
  Parameters:
    `o` - an object of type `Paragraph`, `List`, `Table` or another `Section`
  Returns:
    a boolean
  Throws:
    `java.lang.ClassCastException` - if the object is not a `Paragraph`, `List`, `Table` or `Section`

### addAll

    public boolean addAll(java.util.Collection collection)

  Adds a collection of `Element`s to this `Section`.

  Specified by:
    `addAll` in interface `java.util.Collection`
  Specified by:
    `addAll` in interface `java.util.List`
  Overrides:
    `addAll` in class `java.util.ArrayList`
  Parameters:
    `collection` - a collection of `Paragraph`s, `List`s and/or `Table`s
  Returns:
    `true` if the action succeeded, `false` if not.
  Throws:
    `java.lang.ClassCastException` - if one of the objects isn't a `Paragraph`, `List`, `Table`

### addSection

    public Section addSection(float indentation,
                              Paragraph title,
                              int numberDepth)

  Creates a `Section`, adds it to this `Section` and returns it.

  Parameters:
    `indentation` - the indentation of the new section
    `title` - the title of the new section
    `numberDepth` - the numberDepth of the section
  Returns:
    a new Section object

### addSection

    public Section addSection(float indentation,
                              Paragraph title)

  Creates a `Section`, adds it to this `Section` and returns it.

  Parameters:
    `indentation` - the indentation of the new section
    `title` - the title of the new section
  Returns:
    a new Section object

### addSection

    public Section addSection(Paragraph title,
                              int numberDepth)

  Creates a `Section`, add it to this `Section` and returns it.

  Parameters:
    `title` - the title of the new section
    `numberDepth` - the numberDepth of the section
  Returns:
    a new Section object

### addSection

    public Section addSection(Paragraph title)

  Creates a `Section`, adds it to this `Section` and returns it.

  Parameters:
    `title` - the title of the new section
  Returns:
    a new Section object

### addSection

    public Section addSection(float indentation,
                              java.lang.String title,
                              int numberDepth)

  Adds a `Section` to this `Section` and returns it.

  Parameters:
    `indentation` - the indentation of the new section
    `title` - the title of the new section
    `numberDepth` - the numberDepth of the section
  Returns:
    a new Section object

### addSection

    public Section addSection(java.lang.String title,
                              int numberDepth)

  Adds a `Section` to this `Section` and returns it.

  Parameters:
    `title` - the title of the new section
    `numberDepth` - the numberDepth of the section
  Returns:
    a new Section object

### addSection

    public Section addSection(float indentation,
                              java.lang.String title)

  Adds a `Section` to this `Section` and returns it.

  Parameters:
    `indentation` - the indentation of the new section
    `title` - the title of the new section
  Returns:
    a new Section object

### addSection

    public Section addSection(java.lang.String title)

  Adds a `Section` to this `Section` and returns it.

  Parameters:
    `title` - the title of the new section
  Returns:
    a new Section object

### addSection

    public Section addSection(java.util.Properties attributes)

  Creates a given `Section` following a set of attributes and adds it to this one.

  Parameters:
    `attributes` - the attributes
  Returns:
    a Section

### set

    public void set(java.util.Properties attributes)

  Alters the attributes of this `Section`.

  Parameters:
    `attributes` - the attributes

### setTitle

    public void setTitle(Paragraph title)

  Sets the title of this section.

  Parameters:
    `title` - the new title

### setNumberDepth

    public void setNumberDepth(int numberDepth)

  Sets the depth of the sectionnumbers that will be shown preceding the title.

  If the numberdepth is 0, the sections will not be numbered. If the numberdepth is 1, the section will be numbered with their own number. If the numberdepth is higher (for instance x > 1), the numbers of x - 1 parents will be shown.

  Parameters:
    `numberDepth` - the new numberDepth

### setIndentationLeft

    public void setIndentationLeft(float indentation)

  Sets the indentation of this `Section` on the left side.

  Parameters:
    `indentation` - the indentation

### setIndentationRight

    public void setIndentationRight(float indentation)

  Sets the indentation of this `Section` on the right side.

  Parameters:
    `indentation` - the indentation

### setIndentation

    public void setIndentation(float indentation)

  Sets the indentation of the content of this `Section`.

  Parameters:
    `indentation` - the indentation

### isChapter

    public boolean isChapter()

  Checks if this object is a `Chapter`.

  Returns:
    `true` if it is a `Chapter`, `false` if it is a `Section`.

### isSection

    public boolean isSection()

  Checks if this object is a `Section`.

  Returns:
    `true` if it is a `Section`, `false` if it is a `Chapter`.

### numberDepth

    public int numberDepth()

  Returns the numberdepth of this `Section`.

  Returns:
    the numberdepth

### indentationLeft

    public float indentationLeft()

  Returns the indentation of this `Section` on the left side.

  Returns:
    the indentation

### indentationRight

    public float indentationRight()

  Returns the indentation of this `Section` on the right side.

  Returns:
    the indentation

### indentation

    public float indentation()

  Returns the indentation of the content of this `Section`.

  Returns:
    the indentation

### depth

    public int depth()

  Returns the depth of this section.

  Returns:
    the depth

### title

    public Paragraph title()

  Returns the title, preceeded by a certain number of sectionnumbers.

  Returns:
    a `Paragraph`

### isTitle

    public static boolean isTitle(java.lang.String tag)

  Checks if a given tag corresponds with a title tag for this object.

  Parameters:
    `tag` - the given tag
  Returns:
    true if the tag corresponds

### isTag

    public static boolean isTag(java.lang.String tag)

  Checks if a given tag corresponds with this object.

  Parameters:
    `tag` - the given tag
  Returns:
    true if the tag corresponds

### isBookmarkOpen

    public boolean isBookmarkOpen()

  Getter for property bookmarkOpen.

  Returns:
    Value of property bookmarkOpen.

### setBookmarkOpen

    public void setBookmarkOpen(boolean bookmarkOpen)

  Setter for property bookmarkOpen.

  Parameters:
    `bookmarkOpen` - false if the bookmark children are not visible.

### getBookmarkTitle

    public Paragraph getBookmarkTitle()

  Gets the bookmark title.

  Returns:
    the bookmark title

### setBookmarkTitle

    public void setBookmarkTitle(java.lang.String bookmarkTitle)

  Sets the bookmark title. The bookmark title is the same as the section title but can be changed with this method.

  Parameters:
    `bookmarkTitle` - the bookmark title