Package org.eclipse.jdt.ui

# Interface IWorkingCopyManager

public interface IWorkingCopyManager
Interface for accessing working copies of `ICompilationUnit` 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.

See Also:
  - `JavaUI.getWorkingCopyManager()`
  - `IWorkingCopyManagerExtension`
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`void`
`connect(IEditorInput input)`
Connects the given editor input to this manager.
`void`
`disconnect(IEditorInput input)`
Disconnects the given editor input from this manager.
`ICompilationUnit`
`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 Details

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

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