### org.jfree.layouting.renderer.process

# Class AbstractAlignmentProcessor

- `java.lang.Object`
- - `org.jfree.layouting.renderer.process.AbstractAlignmentProcessor`

Implemented Interfaces:
  TextAlignmentProcessor

Known Direct Subclasses:
  CenterAlignmentProcessor, LeftAlignmentProcessor, RightAlignmentProcessor

`public abstract class AbstractAlignmentProcessor`
`extends java.lang.Object`
`implements TextAlignmentProcessor`

Todo: The whole horizontal alignment is not suitable for spanned page breaks.

Author:
  Thomas Morgner

  ## Constructor Summary

  `AbstractAlignmentProcessor()`

  ## Method Summary

  `protected void`

  `computeInlineBlock(RenderBox box, long position, long itemElementWidth)`

  `int`

  `getBreakableIndex()`

  `long[]`

  `getElementDimensions()`

  `long[]`

  `getElementPositions()`

  `long`

  `getEndOfLine()`

  `protected long`

  `getPageBreak(int pageIndex)`

  `PageGrid`

  `getPageGrid()`

  `protected InlineSequenceElement[]`

  `getSequenceElements()`

  `int`

  `getSkipIndex()`

  `long`

  `getStartOfLine()`

  `protected int`

  `handleElement(int start, int count)`
    Handle the next input chunk.

  `protected abstract int`

  `handleLayout(int start, int count, int contentIndex, long usedWidth)`

  `boolean`

  `hasNext()`

  `void`

  `initialize(InlineSequenceElement[] sequence, long start, long end, PageGrid breaks)`
    Initializes the alignment process.

  `int`

  `iterate(InlineSequenceElement[] elements, int maxPos)`

  `RenderNode`

  `next()`

  `void`

  `setBreakableIndex(int breakableIndex)`

  `void`

  `setSkipIndex(int skipIndex)`

## Constructor Details

### AbstractAlignmentProcessor

    public AbstractAlignmentProcessor()

## Method Details

### computeInlineBlock

    protected void computeInlineBlock(RenderBox box,
                                      long position,
                                      long itemElementWidth)

### getBreakableIndex

    public int getBreakableIndex()

### getElementDimensions

    public long[] getElementDimensions()

### getElementPositions

    public long[] getElementPositions()

### getEndOfLine

    public long getEndOfLine()

### getPageBreak

    protected long getPageBreak(int pageIndex)

### getPageGrid

    public PageGrid getPageGrid()

### getSequenceElements

    protected InlineSequenceElement[] getSequenceElements()

### getSkipIndex

    public int getSkipIndex()

### getStartOfLine

    public long getStartOfLine()

### handleElement

    protected int handleElement(int start,
                                int count)

> Handle the next input chunk.
> Parameters:
>   `start` - the start index
>   `count` - the number of elements in the sequence
> Returns:
>   the processing position. Linebreaks will be inserted, if the returned value is equal or less the start index.

### handleLayout

    protected abstract int handleLayout(int start,
                                        int count,
                                        int contentIndex,
                                        long usedWidth)

### hasNext

    public boolean hasNext()

> Specified by:
>   hasNext in interface TextAlignmentProcessor

### initialize

    public void initialize(InlineSequenceElement[] sequence,
                           long start,
                           long end,
                           PageGrid breaks)

> Initializes the alignment process. The start and end parameters specify the line boundaries, and have been precomputed.
> Specified by:
>   initialize in interface TextAlignmentProcessor
> Parameters:
>   `sequence` -
>   `start` -
>   `end` -
>   `breaks` -

### iterate

    public int iterate(InlineSequenceElement[] elements,
                       int maxPos)

### next

    public RenderNode next()

> Specified by:
>   next in interface TextAlignmentProcessor

### setBreakableIndex

    public void setBreakableIndex(int breakableIndex)

### setSkipIndex

    public void setSkipIndex(int skipIndex)