Interface ISourceManipulation

All Known Subinterfaces:
AbstractModule, ICompilationUnit, IField, IImportDeclaration, IInitializer, IMember, IMethod, IModuleDescription, IPackageFragment, IType
All Known Implementing Classes:
AbstractModule.AutoModule, AssistCompilationUnit, AssistImportDeclaration, AssistInitializer, AssistSourceField, AssistSourceMethod, AssistSourceType, BinaryLambdaExpression, BinaryLambdaMethod, BinaryMember, BinaryMethod, BinaryModule, BinaryType, ClassFileWorkingCopy, CompilationUnit, ImportDeclaration, Initializer, LambdaExpression, LambdaMethod, Member, NamedMember, PackageFragment, ResolvedBinaryField, ResolvedBinaryMethod, ResolvedBinaryType, ResolvedLambdaExpression, ResolvedSourceField, ResolvedSourceMethod, ResolvedSourceType, SourceField, SourceMethod, SourceModule, SourceType

public interface ISourceManipulation
Common protocol for Java elements that support source code manipulations such as copy, move, rename, and delete.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    copy​(IJavaElement container, IJavaElement sibling, String rename, boolean replace, org.eclipse.core.runtime.IProgressMonitor monitor)
    Copies this element to the given container.
    void
    delete​(boolean force, org.eclipse.core.runtime.IProgressMonitor monitor)
    Deletes this element, forcing if specified and necessary.
    void
    move​(IJavaElement container, IJavaElement sibling, String rename, boolean replace, org.eclipse.core.runtime.IProgressMonitor monitor)
    Moves this element to the given container.
    void
    rename​(String name, boolean replace, org.eclipse.core.runtime.IProgressMonitor monitor)
    Renames this element to the given name.
  • Method Details

    • copy

      void copy(IJavaElement container, IJavaElement sibling, String rename, boolean replace, org.eclipse.core.runtime.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:
      IJavaModelStatusConstants.INVALID_DESTINATION
    • delete

      void delete(boolean force, org.eclipse.core.runtime.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, org.eclipse.core.runtime.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:
      IJavaModelStatusConstants.INVALID_DESTINATION
    • rename

      void rename(String name, boolean replace, org.eclipse.core.runtime.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)