package org.eclipse.jdt.core; /* * (c) Copyright IBM Corp. 2000, 2001. * All Rights Reserved. */ import org.eclipse.core.runtime.IProgressMonitor; /** * Common protocol for Java elements that support source code manipulations such * as copy, move, rename, and delete. *

* This interface is not intended to be implemented by clients. *

*/ public interface ISourceManipulation { /** * Copies this element to the given container. * * @param container the container * @param 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 * @param rename the new name for the element, or null if the copy * retains the name of this element * @param 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 * @param monitor a progress monitor * @exception JavaModelException if this element could not be copied. Reasons include: * * * @exception IllegalArgumentException if container is null */ void copy(IJavaElement container, IJavaElement sibling, String rename, boolean replace, IProgressMonitor monitor) throws JavaModelException; /** * Deletes this element, forcing if specified and necessary. * * @param 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). * @param monitor a progress monitor * @exception JavaModelException if this element could not be deleted. Reasons include: * */ void delete(boolean force, IProgressMonitor monitor) throws JavaModelException; /** * Moves this element to the given container. * * @param container the container * @param 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 * @param rename the new name for the element, or null if the * element retains its name * @param 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 * @param monitor a progress monitor * @exception JavaModelException if this element could not be moved. Reasons include: * * * @exception IllegalArgumentException if container is null */ void move(IJavaElement container, IJavaElement sibling, String rename, boolean replace, IProgressMonitor monitor) throws JavaModelException; /** * Renames this element to the given name. * * @param name the new name for the element * @param 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 * @param monitor a progress monitor * @exception JavaModelException if this element could not be renamed. Reasons include: * */ void rename(String name, boolean replace, IProgressMonitor monitor) throws JavaModelException; }