Interface ISourceManipulation

All Known Subinterfaces:
ICompilationUnit, IField, IImportDeclaration, IInitializer, IMember, IMethod, IModuleDescription, IPackageFragment, IType

public interface ISourceManipulation
Common protocol for Java elements that support source code manipulations such as copy, move, rename, and delete.
Restriction:
This interface is not intended to be implemented by clients.
  • Method Details

    • copy

      void copy(IJavaElement container, IJavaElement sibling, String rename, boolean replace, IProgressMonitor monitor) throws JavaModelException
      Copies this element to the given container.
      Parameters:
      container - the container
      sibling - the sibling element before which the copy should be inserted, or null if the copy should be inserted as the last child of the container
      rename - the new name for the element, or null if the copy retains the name of this element
      replace - true if any existing child in the container with the target name should be replaced, and false to throw an exception in the event of a name collision
      monitor - a progress monitor
      Throws:
      JavaModelException - if this element could not be copied. Reasons include:
      • This Java element, container element, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)
      • A CoreException occurred while updating an underlying resource
      • The container is of an incompatible type (INVALID_DESTINATION)
      • The sibling is not a child of the given container (INVALID_SIBLING)
      • The new name is invalid (INVALID_NAME)
      • A child in the container already exists with the same name (NAME_COLLISION) and replace has been specified as false
      • The container or this element is read-only (READ_ONLY)
      IllegalArgumentException - if container is null
      See Also:
    • delete

      void delete(boolean force, IProgressMonitor monitor) throws JavaModelException
      Deletes this element, forcing if specified and necessary.
      Parameters:
      force - a flag controlling whether underlying resources that are not in sync with the local file system will be tolerated (same as the force flag in IResource operations).
      monitor - a progress monitor
      Throws:
      JavaModelException - if this element could not be deleted. Reasons include:
      • This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
      • A CoreException occurred while updating an underlying resource (CORE_EXCEPTION)
      • This element is read-only (READ_ONLY)
    • move

      void move(IJavaElement container, IJavaElement sibling, String rename, boolean replace, IProgressMonitor monitor) throws JavaModelException
      Moves this element to the given container.
      Parameters:
      container - the container
      sibling - the sibling element before which the element should be inserted, or null if the element should be inserted as the last child of the container
      rename - the new name for the element, or null if the element retains its name
      replace - true if any existing child in the container with the target name should be replaced, and false to throw an exception in the event of a name collision
      monitor - a progress monitor
      Throws:
      JavaModelException - if this element could not be moved. Reasons include:
      • This Java element, container element, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)
      • A CoreException occurred while updating an underlying resource
      • The container is of an incompatible type (INVALID_DESTINATION)
      • The sibling is not a child of the given container (INVALID_SIBLING)
      • The new name is invalid (INVALID_NAME)
      • A child in the container already exists with the same name (NAME_COLLISION) and replace has been specified as false
      • The container or this element is read-only (READ_ONLY)
      IllegalArgumentException - if container is null
      See Also:
    • rename

      void rename(String name, boolean replace, IProgressMonitor monitor) throws JavaModelException
      Renames this element to the given name.
      Parameters:
      name - the new name for the element
      replace - true if any existing element with the target name should be replaced, and false to throw an exception in the event of a name collision
      monitor - a progress monitor
      Throws:
      JavaModelException - if this element could not be renamed. Reasons include:
      • This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
      • A CoreException occurred while updating an underlying resource
      • The new name is invalid (INVALID_NAME)
      • A child in the container already exists with the same name (NAME_COLLISION) and replace has been specified as false
      • This element is read-only (READ_ONLY)