org.eclipse.wst.jsdt.ui

## Interface IWorkingCopyManager

    public interface IWorkingCopyManager

Interface for accessing working copies of `IJavaScriptUnit` objects. The original compilation unit is only given indirectly by means of an `IEditorInput`. The life cycle is as follows:

- `connect` creates and remembers a working copy of the compilation unit which is encoded in the given editor input
- `getWorkingCopy` returns the working copy remembered on `connect`
- `disconnect` destroys the working copy remembered on `connect`

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

- `IWorkingCopyManagerExtension` since version 2.1 introducing API to set and remove the working copy for a given editor input.

This interface is not intended to be implemented by clients.

* 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.

See Also:
  `JavaScriptUI.getWorkingCopyManager()`, `IWorkingCopyManagerExtension`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `connect(IEditorInput input)` Connects the given editor input to this manager.
`void` `disconnect(IEditorInput input)` Disconnects the given editor input from this manager.
`IJavaScriptUnit` `getWorkingCopy(IEditorInput input)` Returns the working copy remembered for the compilation unit encoded in the given editor input.
`void` `shutdown()` Shuts down this working copy manager.

### Method Detail

#### connect

    void connect(IEditorInput input)
          throws CoreException

Connects the given editor input to this manager. After calling this method, a working copy will be available for the compilation unit encoded in the given editor input (does nothing if there is no encoded compilation unit).

Parameters:
  `input` - the editor input
Throws:
  `CoreException` - if the working copy cannot be created for the compilation unit

#### disconnect

    void disconnect(IEditorInput input)

Disconnects the given editor input from this manager. After calling this method, a working copy for the compilation unit encoded in the given editor input will no longer be available. Does nothing if there is no encoded compilation unit, or if there is no remembered working copy for the compilation unit.

Parameters:
  `input` - the editor input

#### getWorkingCopy

    IJavaScriptUnit getWorkingCopy(IEditorInput input)

Returns the working copy remembered for the compilation unit encoded in the given editor input.

Parameters:
  `input` - the editor input
Returns:
  the working copy of the compilation unit, or `null` if the input does not encode an editor input, or if there is no remembered working copy for this compilation unit

#### shutdown

    void shutdown()

Shuts down this working copy manager. All working copies still remembered by this manager are destroyed.