Copyright (c) 2007, 2008 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2007, 2008 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation ******************************************************************************/
package org.eclipse.ltk.internal.core.refactoring.resource.undostates; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource;
ResourceUndoState is a lightweight state object that describes the common attributes of a resource to be created. This class is not intended to be extended by clients.
Since:3.4
/** * {@link ResourceUndoState} is a lightweight state object that describes the common * attributes of a resource to be created. * * This class is not intended to be extended by clients. * * @since 3.4 * */
public abstract class ResourceUndoState {
Create a ResourceUndoState object given the specified resource. The resource is assumed to exist.
Params:
  • resource – the resource from which a state should be created
Returns:the resource state
/** * Create a {@link ResourceUndoState} object given the specified resource. The resource * is assumed to exist. * * @param resource * the resource from which a state should be created * @return the resource state */
public static ResourceUndoState fromResource(IResource resource) { if (resource.getType() == IResource.PROJECT) { return new ProjectUndoState((IProject) resource); } else if (resource.getType() == IResource.FOLDER) { return new FolderUndoState((IFolder) resource); } else if (resource.getType() == IResource.FILE) { return new FileUndoState((IFile) resource); } else { throw new IllegalArgumentException(); } }
Create a resource handle that can be used to create a resource from this resource state. This handle can be used to create the actual resource, or to describe the creation to a resource delta factory.
Returns:the resource handle that can be used to create a resource from this state object
/** * Create a resource handle that can be used to create a resource from this * resource state. This handle can be used to create the actual * resource, or to describe the creation to a resource delta factory. * * @return the resource handle that can be used to create a resource from * this state object */
public abstract IResource createResourceHandle();
Get the name of this resource.
Returns:the name of the Resource
/** * Get the name of this resource. * * @return the name of the Resource */
public abstract String getName();
Create an existent resource from this resource state.
Params:
  • monitor – the progress monitor to use
Throws:
Returns:a resource that has the attributes of this resource state
/** * Create an existent resource from this resource state. * * @param monitor * the progress monitor to use * @return a resource that has the attributes of this resource state * @throws CoreException if creation failed */
public abstract IResource createResource(IProgressMonitor monitor) throws CoreException;
Given a resource handle, create an actual resource with the attributes of the receiver resource state.
Params:
  • resource – the resource handle
  • monitor – the progress monitor to be used when creating the resource
Throws:
/** * Given a resource handle, create an actual resource with the attributes of * the receiver resource state. * * @param resource * the resource handle * @param monitor * the progress monitor to be used when creating the resource * @throws CoreException if creation failed */
public abstract void createExistentResourceFromHandle(IResource resource, IProgressMonitor monitor) throws CoreException;
Return a boolean indicating whether this resource state has enough information to create a resource.
Returns:true if the resource can be created, and false if it does not have enough information
/** * Return a boolean indicating whether this resource state has enough * information to create a resource. * * @return <code>true</code> if the resource can be created, and * <code>false</code> if it does not have enough information */
public abstract boolean isValid();
Record the appropriate state of this resource state using any available resource history.
Params:
  • resource – the resource whose state is to be recorded.
  • monitor – the progress monitor to be used
Throws:
/** * Record the appropriate state of this resource state using * any available resource history. * * @param resource * the resource whose state is to be recorded. * @param monitor * the progress monitor to be used * @throws CoreException if history could not be read */
public abstract void recordStateFromHistory(IResource resource, IProgressMonitor monitor) throws CoreException;
Return a boolean indicating whether this state represents an existent resource.
Params:
  • checkMembers – Use true if members should also exist in order for this state to be considered existent. A value of false indicates that the existence of members does not matter.
Returns:a boolean indicating whether this state represents an existent resource.
/** * Return a boolean indicating whether this state represents an * existent resource. * * @param checkMembers * Use <code>true</code> if members should also exist in order * for this state to be considered existent. A value of * <code>false</code> indicates that the existence of members * does not matter. * * @return a boolean indicating whether this state represents an * existent resource. */
public abstract boolean verifyExistence(boolean checkMembers); }