## 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` `indentation` The additional indentation of the content of this section.
`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` 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.
`private static long` `serialVersionUID`
`protected int` `subsections` This is the number of subsections.
`protected Paragraph` `title` The title of this section.
`protected boolean` `triggerNewPage` true if the section has to trigger a new page

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, HEADER, IMGRAW, IMGTEMPLATE, JPEG, JPEG2000, KEYWORDS, LIST, LISTITEM, MARKED, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE`

Constructor Summary
`protected` `Section()` Constructs a new `Section`.
`protected` `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`.
`MarkedSection` `addMarkedSection()` Adds a marked 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)` Deprecated. Use ElementFactory.getSection(this, attributes)
`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()` Deprecated. Use `getDepth()` instead
`Paragraph` `getBookmarkTitle()` Gets the bookmark title.
`java.util.ArrayList` `getChunks()` Gets all the chunks in this element.
`int` `getDepth()` Returns the depth of this section.
`float` `getIndentation()` Returns the indentation of the content of this `Section`.
`float` `getIndentationLeft()` Returns the indentation of this `Section` on the left side.
`float` `getIndentationRight()` Returns the indentation of this `Section` on the right side.
`int` `getNumberDepth()` Returns the numberdepth of this `Section`.
`Paragraph` `getTitle()` Returns the title, preceeded by a certain number of sectionnumbers.
`float` `indentation()` Deprecated. Use `getIndentation()` instead
`float` `indentationLeft()` Deprecated. Use `getIndentationLeft()` instead
`float` `indentationRight()` Deprecated. Use `getIndentationRight()` instead
`boolean` `isBookmarkOpen()` Getter for property bookmarkOpen.
`boolean` `isChapter()` Checks if this object is a `Chapter`.
`boolean` `isSection()` Checks if this object is a `Section`.
`boolean` `isTriggerNewPage()` Getter for property bookmarkOpen.
`int` `numberDepth()` Deprecated. Use `getNumberDepth()` instead
`boolean` `process(ElementListener listener)` Processes the element by adding it (or the different parts) to an `ElementListener`.
`void` `setBookmarkOpen(boolean bookmarkOpen)` Setter for property bookmarkOpen.
`void` `setBookmarkTitle(java.lang.String bookmarkTitle)` Sets the bookmark title.
`void` `setChapterNumber(int number)` Changes the Chapter number.
`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.
`void` `setTriggerNewPage(boolean triggerNewPage)` Setter for property triggerNewPage.
`Paragraph` `title()` Deprecated. Use `getTitle()` instead
`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, toString, 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

### serialVersionUID

    private static final long serialVersionUID

See Also:
  Constant Field Values

### title

    protected Paragraph title

  The title of this section.

### bookmarkTitle

    protected java.lang.String bookmarkTitle

  The bookmark title if different from the content title

### numberDepth

    protected int numberDepth

  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.

### indentation

    protected float indentation

  The additional indentation of the content of this section.

### bookmarkOpen

    protected boolean bookmarkOpen

  false if the bookmark children are not visible

### triggerNewPage

    protected boolean triggerNewPage

  true if the section has to trigger a new page

### 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.

Constructor Detail

### Section

    protected Section()

  Constructs a new `Section`.

### Section

    protected Section(Paragraph title,
                      int numberDepth)

  Constructs a new `Section`.

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

Method Detail

### 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

### 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`.

### 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

### addMarkedSection

    public MarkedSection addMarkedSection()

  Adds a marked section. For use in class MarkedSection only!

### 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

### setTitle

    public void setTitle(Paragraph title)

  Sets the title of this section.

  Parameters:
    `title` - the new title

### getTitle

    public Paragraph getTitle()

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

  Returns:
    a `Paragraph`

### 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

### getNumberDepth

    public int getNumberDepth()

  Returns the numberdepth of this `Section`.

  Returns:
    the numberdepth

### setIndentationLeft

    public void setIndentationLeft(float indentation)

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

  Parameters:
    `indentation` - the indentation

### getIndentationLeft

    public float getIndentationLeft()

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

  Returns:
    the indentation

### setIndentationRight

    public void setIndentationRight(float indentation)

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

  Parameters:
    `indentation` - the indentation

### getIndentationRight

    public float getIndentationRight()

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

  Returns:
    the indentation

### setIndentation

    public void setIndentation(float indentation)

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

  Parameters:
    `indentation` - the indentation

### getIndentation

    public float getIndentation()

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

  Returns:
    the indentation

### setBookmarkOpen

    public void setBookmarkOpen(boolean bookmarkOpen)

  Setter for property bookmarkOpen.

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

### isBookmarkOpen

    public boolean isBookmarkOpen()

  Getter for property bookmarkOpen.

  Returns:
    Value of property bookmarkOpen.

### setTriggerNewPage

    public void setTriggerNewPage(boolean triggerNewPage)

  Setter for property triggerNewPage.

  Parameters:
    `triggerNewPage` - true if a new page has to be triggered.

### isTriggerNewPage

    public boolean isTriggerNewPage()

  Getter for property bookmarkOpen.

  Returns:
    Value of property triggerNewPage.

### 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

### getBookmarkTitle

    public Paragraph getBookmarkTitle()

  Gets the bookmark title.

  Returns:
    the bookmark title

### setChapterNumber

    public void setChapterNumber(int number)

  Changes the Chapter number.

### getDepth

    public int getDepth()

  Returns the depth of this section.

  Returns:
    the depth

### 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

### title

    public Paragraph title()

  Deprecated. Use `getTitle()` instead

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

  Returns:
    a `Paragraph`

### numberDepth

    public int numberDepth()

  Deprecated. Use `getNumberDepth()` instead

  Returns the numberdepth of this `Section`.

  Returns:
    the numberdepth

### indentationLeft

    public float indentationLeft()

  Deprecated. Use `getIndentationLeft()` instead

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

  Returns:
    the indentation

### indentationRight

    public float indentationRight()

  Deprecated. Use `getIndentationRight()` instead

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

  Returns:
    the indentation

### indentation

    public float indentation()

  Deprecated. Use `getIndentation()` instead

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

  Returns:
    the indentation

### depth

    public int depth()

  Deprecated. Use `getDepth()` instead

  Returns the depth of this section.

  Returns:
    the depth

### addSection

    public Section addSection(java.util.Properties attributes)

  Deprecated. Use ElementFactory.getSection(this, attributes)

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

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