com.lowagie.text

## Class Phrase

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

- 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:
    Anchor, Paragraph

      public class Phrase
      extends java.util.ArrayList
      implements TextElementArray

  A `Phrase` is a series of `Chunk`s.

  A `Phrase` has a main `Font`, but some chunks within the phrase can have a `Font` that differs from the main `Font`. All the `Chunk`s in a `Phrase` have the same `leading`.

  Example:

  >      // When no parameters are passed, the default leading = 16
  >      Phrase phrase0 = new Phrase();
  >      Phrase phrase1 = new Phrase("this is a phrase");
  >      // In this example the leading is passed as a parameter
  >      Phrase phrase2 = new Phrase(16, "this is a phrase with leading 16");
  >      // When a Font is passed (explicitly or embedded in a chunk), the default leading = 1.5 * size of the font
  >      Phrase phrase3 = new Phrase("this is a phrase with a red, normal font Courier, size 12", FontFactory.getFont(FontFactory.COURIER, 12, Font.NORMAL, new Color(255, 0, 0)));
  >      Phrase phrase4 = new Phrase(new Chunk("this is a phrase"));
  >      Phrase phrase5 = new Phrase(18, new Chunk("this is a phrase", FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD, new Color(255, 0, 0)));

  See Also:
    `Element`, `Chunk`, `Paragraph`, `Anchor`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Font` | `font` This is the font of this phrase.
    `protected HyphenationEvent` | `hyphenation` Null, unless the Phrase has to be hyphenated.
    `protected float` | `leading` This is the leading of this phrase.
    `private static long` | `serialVersionUID`

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

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `Phrase()` Constructs a `Phrase` without specifying a leading.
    `private` | `Phrase(boolean dummy)` Constructs a Phrase that can be used in the static getInstance() method.
    `` | `Phrase(Chunk chunk)` Constructs a `Phrase` with a certain `Chunk`.
    `` | `Phrase(float leading)` Constructs a `Phrase` with a certain leading.
    `` | `Phrase(float leading, Chunk chunk)` Constructs a `Phrase` with a certain `Chunk` and a certain leading.
    `` | `Phrase(float leading, java.lang.String string)` Constructs a `Phrase` with a certain leading and a certain `String`.
    `` | `Phrase(float leading, java.lang.String string, Font font)` Constructs a `Phrase` with a certain leading, a certain `String` and a certain `Font`.
    `` | `Phrase(Phrase phrase)` Copy constructor for `Phrase`.
    `` | `Phrase(java.lang.String string)` Constructs a `Phrase` with a certain `String`.
    `` | `Phrase(java.lang.String string, Font font)` Constructs a `Phrase` with a certain `String` and a certain `Font`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(int index, java.lang.Object o)` Adds a `Chunk`, an `Anchor` or another `Phrase` to this `Phrase`.
    `boolean` | `add(java.lang.Object o)` Adds a `Chunk`, `Anchor` or another `Phrase` to this `Phrase`.
    `boolean` | `addAll(java.util.Collection collection)` Adds a collection of `Chunk`s to this `Phrase`.
    `protected boolean` | `addChunk(Chunk chunk)` Adds a Chunk.
    `protected void` | `addSpecial(java.lang.Object object)` Adds a `Object` to the `Paragraph`.
    `java.util.ArrayList` | `getChunks()` Gets all the chunks in this element.
    `java.lang.String` | `getContent()` Returns the content as a String object.
    `Font` | `getFont()` Gets the font of the first `Chunk` that appears in this `Phrase`.
    `HyphenationEvent` | `getHyphenation()` Getter for the hyphenation settings.
    `static Phrase` | `getInstance(int leading, java.lang.String string)` Gets a special kind of Phrase that changes some characters into corresponding symbols.
    `static Phrase` | `getInstance(int leading, java.lang.String string, Font font)` Gets a special kind of Phrase that changes some characters into corresponding symbols.
    `static Phrase` | `getInstance(java.lang.String string)` Gets a special kind of Phrase that changes some characters into corresponding symbols.
    `float` | `getLeading()` Gets the leading of this phrase.
    `boolean` | `hasLeading()` Checks you if the leading of this phrase is defined.
    `boolean` | `isContent()` Checks if this element is a content object.
    `boolean` | `isEmpty()` Checks is this `Phrase` contains no or 1 empty `Chunk`.
    `boolean` | `isNestable()` Checks if this element is nestable.
    `boolean` | `process(ElementListener listener)` Processes the element by adding it (or the different parts) to an `ElementListener`.
    `void` | `setFont(Font font)` Sets the main font of this phrase.
    `void` | `setHyphenation(HyphenationEvent hyphenation)` Setter for the hyphenation.
    `void` | `setLeading(float leading)` Sets the leading of this phrase.
    `int` | `type()` Gets the type of the text element.

    - ### Methods inherited from class java.util.ArrayList

      `addAll, clear, clone, contains, ensureCapacity, get, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeRange, retainAll, set, size, subList, toArray, toArray, trimToSize`

    - ### Methods inherited from class java.util.AbstractList

      `equals, hashCode`

    - ### Methods inherited from class java.util.AbstractCollection

      `containsAll, 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`

- - ### Field Detail

    - #### serialVersionUID

          private static final long serialVersionUID

      See Also:
        Constant Field Values

    - #### leading

          protected float leading

      This is the leading of this phrase.

    - #### font

          protected Font font

      This is the font of this phrase.

    - #### hyphenation

          protected HyphenationEvent hyphenation

      Null, unless the Phrase has to be hyphenated.
      Since:
        2.1.2

  - ### Constructor Detail

    - #### Phrase

          public Phrase()

      Constructs a `Phrase` without specifying a leading.

    - #### Phrase

          public Phrase(Phrase phrase)

      Copy constructor for `Phrase`.

    - #### Phrase

          public Phrase(float leading)

      Constructs a `Phrase` with a certain leading.
      Parameters:
        `leading` - the leading

    - #### Phrase

          public Phrase(Chunk chunk)

      Constructs a `Phrase` with a certain `Chunk`.
      Parameters:
        `chunk` - a `Chunk`

    - #### Phrase

          public Phrase(float leading,
                Chunk chunk)

      Constructs a `Phrase` with a certain `Chunk` and a certain leading.
      Parameters:
        `leading` - the leading
        `chunk` - a `Chunk`

    - #### Phrase

          public Phrase(java.lang.String string)

      Constructs a `Phrase` with a certain `String`.
      Parameters:
        `string` - a `String`

    - #### Phrase

          public Phrase(java.lang.String string,
                Font font)

      Constructs a `Phrase` with a certain `String` and a certain `Font`.
      Parameters:
        `string` - a `String`
        `font` - a `Font`

    - #### Phrase

          public Phrase(float leading,
                java.lang.String string)

      Constructs a `Phrase` with a certain leading and a certain `String`.
      Parameters:
        `leading` - the leading
        `string` - a `String`

    - #### Phrase

          public Phrase(float leading,
                java.lang.String string,
                Font font)

      Constructs a `Phrase` with a certain leading, a certain `String` and a certain `Font`.
      Parameters:
        `leading` - the leading
        `string` - a `String`
        `font` - a `Font`

    - #### Phrase

          private Phrase(boolean dummy)

      Constructs a Phrase that can be used in the static getInstance() method.
      Parameters:
        `dummy` - a dummy parameter

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

    - #### isContent

          public boolean isContent()

      Description copied from interface: `Element`
      Checks if this element is a content object. If not, it's a metadata object.
      Specified by:
        `isContent` in interface `Element`
      Returns:
        true if this is a 'content' element; false if this is a 'metadata' element
      Since:
        iText 2.0.8
      See Also:
        `Element.isContent()`

    - #### isNestable

          public boolean isNestable()

      Description copied from interface: `Element`
      Checks if this element is nestable.
      Specified by:
        `isNestable` in interface `Element`
      Returns:
        true if this element can be nested inside other elements.
      Since:
        iText 2.0.8
      See Also:
        `Element.isNestable()`

    - #### add

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

      Adds a `Chunk`, an `Anchor` or another `Phrase` to this `Phrase`.
      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 `Chunk`, `Anchor` or `Phrase`
      Throws:
        `java.lang.ClassCastException` - when you try to add something that isn't a `Chunk`, `Anchor` or `Phrase`

    - #### add

          public boolean add(java.lang.Object o)

      Adds a `Chunk`, `Anchor` or another `Phrase` to this `Phrase`.
      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 `Chunk`, `Anchor` or `Phrase`
      Returns:
        a boolean
      Throws:
        `java.lang.ClassCastException` - when you try to add something that isn't a `Chunk`, `Anchor` or `Phrase`

    - #### addAll

          public boolean addAll(java.util.Collection collection)

      Adds a collection of `Chunk`s to this `Phrase`.
      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 `Chunk`s, `Anchor`s and `Phrase`s.
      Returns:
        `true` if the action succeeded, `false` if not.
      Throws:
        `java.lang.ClassCastException` - when you try to add something that isn't a `Chunk`, `Anchor` or `Phrase`

    - #### addChunk

          protected boolean addChunk(Chunk chunk)

      Adds a Chunk.

      This method is a hack to solve a problem I had with phrases that were split between chunks in the wrong place.

      Parameters:
        `chunk` - a Chunk to add to the Phrase
      Returns:
        true if adding the Chunk succeeded

    - #### addSpecial

          protected void addSpecial(java.lang.Object object)

      Adds a `Object` to the `Paragraph`.
      Parameters:
        `object` - the object to add.

    - #### setLeading

          public void setLeading(float leading)

      Sets the leading of this phrase.
      Parameters:
        `leading` - the new leading

    - #### setFont

          public void setFont(Font font)

      Sets the main font of this phrase.
      Parameters:
        `font` - the new font

    - #### getLeading

          public float getLeading()

      Gets the leading of this phrase.
      Returns:
        the linespacing

    - #### hasLeading

          public boolean hasLeading()

      Checks you if the leading of this phrase is defined.
      Returns:
        true if the leading is defined

    - #### getFont

          public Font getFont()

      Gets the font of the first `Chunk` that appears in this `Phrase`.
      Returns:
        a `Font`

    - #### getContent

          public java.lang.String getContent()

      Returns the content as a String object. This method differs from toString because toString will return an ArrayList with the toString value of the Chunks in this Phrase.

    - #### isEmpty

          public boolean isEmpty()

      Checks is this `Phrase` contains no or 1 empty `Chunk`.
      Specified by:
        `isEmpty` in interface `java.util.Collection`
      Specified by:
        `isEmpty` in interface `java.util.List`
      Overrides:
        `isEmpty` in class `java.util.ArrayList`
      Returns:
        `false` if the `Phrase` contains more than one or more non-empty`Chunk`s.

    - #### getHyphenation

          public HyphenationEvent getHyphenation()

      Getter for the hyphenation settings.
      Returns:
        a HyphenationEvent
      Since:
        2.1.2

    - #### setHyphenation

          public void setHyphenation(HyphenationEvent hyphenation)

      Setter for the hyphenation.
      Parameters:
        `hyphenation` - a HyphenationEvent instance
      Since:
        2.1.2

    - #### getInstance

          public static final Phrase getInstance(java.lang.String string)

      Gets a special kind of Phrase that changes some characters into corresponding symbols.
      Parameters:
        `string` -
      Returns:
        a newly constructed Phrase

    - #### getInstance

          public static final Phrase getInstance(int leading,
                           java.lang.String string)

      Gets a special kind of Phrase that changes some characters into corresponding symbols.
      Parameters:
        `leading` -
        `string` -
      Returns:
        a newly constructed Phrase

    - #### getInstance

          public static final Phrase getInstance(int leading,
                           java.lang.String string,
                           Font font)

      Gets a special kind of Phrase that changes some characters into corresponding symbols.
      Parameters:
        `leading` -
        `string` -
        `font` -
      Returns:
        a newly constructed Phrase