Interface ISourceManipulation

All Known Subinterfaces:
IAsmLabel, IBinaryFunction, IBinaryVariable, IDeclaration, IEnumeration, IEnumerator, IField, IFunction, IFunctionDeclaration, IFunctionTemplate, IFunctionTemplateDeclaration, IInclude, IMacro, IMember, IMethod, IMethodDeclaration, IMethodTemplate, IMethodTemplateDeclaration, INamespace, IPragma, IStructure, IStructureDeclaration, IStructureTemplate, IStructureTemplateDeclaration, ITranslationUnit, ITypeDef, IUsing, IVariable, IVariableDeclaration, IWorkingCopy

public interface ISourceManipulation
Common protocol for C elements that support source code manipulations such as copy, move, rename, and delete.
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
    copy(ICElement container, ICElement 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(ICElement container, ICElement 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(ICElement container, ICElement sibling, String rename, boolean replace, org.eclipse.core.runtime.IProgressMonitor monitor) throws CModelException
      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:
      CModelException - if this element could not be copied. Reasons include:
      • This C 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
    • delete

      void delete(boolean force, org.eclipse.core.runtime.IProgressMonitor monitor) throws CModelException
      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:
      CModelException - if this element could not be deleted. Reasons include:
      • This C 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(ICElement container, ICElement sibling, String rename, boolean replace, org.eclipse.core.runtime.IProgressMonitor monitor) throws CModelException
      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:
      CModelException - if this element could not be moved. Reasons include:
      • This C 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
    • rename

      void rename(String name, boolean replace, org.eclipse.core.runtime.IProgressMonitor monitor) throws CModelException
      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:
      CModelException - if this element could not be renamed. Reasons include:
      • This C 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)