org.gjt.sp.jedit.buffer

## Class FoldHandler

- java.lang.Object
- - org.gjt.sp.jedit.buffer.FoldHandler

Direct Known Subclasses:
  DummyFoldHandler, ExplicitFoldHandler, IndentFoldHandler

    public abstract class FoldHandler
    extends java.lang.Object

Interface for obtaining the fold level of a specified line.

Plugins can provide fold handlers by defining entries in their `services.xml` files like so:

    <SERVICE CLASS="org.gjt.sp.jedit.buffer.FoldHandler" NAME="name">
        new MyFoldHandler();
    </SERVICE>

See `ServiceManager` for details.

Since:
  jEdit 4.3pre3

### Field Summary

Fields
`static FoldHandlerProvider` `foldHandlerProvider` The FoldHandlerProvider.

### Constructor Summary

Constructors
`protected` `FoldHandler(java.lang.String name)`

### Method Summary

Methods
`boolean` `equals(java.lang.Object o)` Returns if the specified fold handler is equal to this one.
`static FoldHandler` `getFoldHandler(java.lang.String name)` Returns the fold handler with the specified name, or null if there is no registered handler with that name.
`abstract int` `getFoldLevel(JEditBuffer buffer, int lineIndex, javax.swing.text.Segment seg)` Returns the fold level of the specified line.
`static java.lang.String[]` `getFoldModes()` Returns an array containing the names of all registered fold handlers.
`java.lang.String` `getName()` Returns the internal name of this FoldHandler
`java.util.List<java.lang.Integer>` `getPrecedingFoldLevels(JEditBuffer buffer, int lineIndex, javax.swing.text.Segment seg, int lineFoldLevel)` Returns the fold levels of the lines preceding the specified line, which depend on the specified line.
`int` `hashCode()`
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### foldHandlerProvider

    public static FoldHandlerProvider foldHandlerProvider

The FoldHandlerProvider.

### Constructor Detail

#### FoldHandler

    protected FoldHandler(java.lang.String name)

### Method Detail

#### getName

    public java.lang.String getName()

Returns the internal name of this FoldHandler

Returns:
  The internal name of this FoldHandler
Since:
  jEdit 4.0pre6

#### getFoldLevel

    public abstract int getFoldLevel(JEditBuffer buffer,
                   int lineIndex,
                   javax.swing.text.Segment seg)

Returns the fold level of the specified line.

Parameters:
  `buffer` - The buffer in question
  `lineIndex` - The line index
  `seg` - A segment the fold handler can use to obtain any text from the buffer, if necessary
Returns:
  The fold level of the specified line
Since:
  jEdit 4.0pre1

#### getPrecedingFoldLevels

    public java.util.List<java.lang.Integer> getPrecedingFoldLevels(JEditBuffer buffer,
                                                           int lineIndex,
                                                           javax.swing.text.Segment seg,
                                                           int lineFoldLevel)

Returns the fold levels of the lines preceding the specified line, which depend on the specified line.

Parameters:
  `buffer` - The buffer in question
  `lineIndex` - The line index
  `seg` - A segment the fold handler can use to obtain any
  `lineFoldLevel` - The fold level of the specified line
Returns:
  The fold levels of the preceding lines, in decreasing line number order (i.e. bottomost line first).
Since:
  jEdit 4.3pre18

#### equals

    public boolean equals(java.lang.Object o)

Returns if the specified fold handler is equal to this one.

Overrides:
  `equals` in class `java.lang.Object`
Parameters:
  `o` - The object

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`

#### getFoldHandler

    public static FoldHandler getFoldHandler(java.lang.String name)

Returns the fold handler with the specified name, or null if there is no registered handler with that name.

Parameters:
  `name` - The name of the desired fold handler
Since:
  jEdit 4.0pre6

#### getFoldModes

    public static java.lang.String[] getFoldModes()

Returns an array containing the names of all registered fold handlers.

Since:
  jEdit 4.0pre6

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`