org.eclipse.wst.jsdt.ui.text.folding

## Interface IJavaFoldingStructureProvider

All Known Implementing Classes:
  DefaultJavaFoldingStructureProvider

    public interface IJavaFoldingStructureProvider

Contributors to the `org.eclipse.wst.jsdt.ui.foldingStructureProvider` extension point must specify an implementation of this interface which will create and maintain `org.eclipse.jface.text.source.projection.ProjectionAnnotation` objects that define folded regions in the `org.eclipse.jface.text.source.projection.ProjectionViewer`.

Clients may implement this interface.

In order to provide backward compatibility for clients of `IJavaFoldingStructureProvider`, extension interfaces are used to provide a means of evolution. The following extension interfaces exist:

- `IJavaFoldingStructureProviderExtension` since version 3.2 introducing the following functions:
  - collapsing of comments and members
  - expanding and collapsing of certain JavaScript elements

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `initialize()` (Re-)initializes the structure provided by the receiver.
`void` `install(ITextEditor editor, ProjectionViewer viewer)` Installs this structure provider on the given editor and viewer.
`void` `uninstall()` Uninstalls this structure provider.

### Method Detail

#### install

    void install(ITextEditor editor,
                 ProjectionViewer viewer)

Installs this structure provider on the given editor and viewer. Implementations should listen to the projection events generated by `viewer` and enable / disable generation of projection structure accordingly.

Parameters:
  `editor` - the editor that this provider works on
  `viewer` - the projection viewer that displays the annotations created by this structure provider

#### uninstall

    void uninstall()

Uninstalls this structure provider. Any references to editors or viewers should be cleared.

#### initialize

    void initialize()

(Re-)initializes the structure provided by the receiver.