## 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
`static FoldHandlerProvider` `foldHandlerProvider` The FoldHandlerProvider.
`static java.lang.String` `SERVICE` Deprecated. use `ServiceManager.ServiceFoldHandlerProvider`

Constructor Summary
`protected` `FoldHandler(java.lang.String name)`

Method Summary
`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

### SERVICE

    @Deprecated
    public static final java.lang.String SERVICE

  Deprecated. use `ServiceManager.ServiceFoldHandlerProvider`
  The service type. See `ServiceManager`.

  Since:
    jEdit 4.2pre1
  See Also:
    Constant Field Values

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