1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-09 10:46:02 +02:00

Remove Resource was implementing IResource which is illegal

This commit is contained in:
Alain Magloire 2003-02-25 01:30:07 +00:00
parent c35fa54bbc
commit 1188530d40

View file

@ -1,517 +0,0 @@
package org.eclipse.cdt.internal.core.model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.cdt.core.model.ICModelStatus;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceVisitor;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.PlatformObject;
import org.eclipse.core.runtime.QualifiedName;
/**
*/
public abstract class Resource extends PlatformObject implements IResource {
ArrayList markers;
Map sessionProperties;
boolean readOnly;
boolean derived;
boolean teamPrivate;
long stamp;
boolean local;
/**
* @see org.eclipse.core.resources.IResource#accept(IResourceVisitor, int, boolean)
*/
public void accept(IResourceVisitor visitor, int depth,
boolean includePhantoms) throws CoreException {
accept(visitor, depth, includePhantoms ? IContainer.INCLUDE_PHANTOMS : IResource.NONE);
}
/**
* @see org.eclipse.core.resources.IResource#accept(IResourceVisitor)
*/
public void accept(IResourceVisitor visitor) throws CoreException {
accept(visitor, IResource.NONE, IContainer.DEPTH_INFINITE);
}
/**
* @see org.eclipse.core.resources.IResource#accept(IResourceVisitor, int, int)
*/
public void accept(IResourceVisitor visitor, int depth, int memberFlags) throws CoreException {
final boolean includePhantoms = (memberFlags & IContainer.INCLUDE_PHANTOMS) != 0;
final boolean includeTeamPrivateMember =
(memberFlags & IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS) != 0;
// The INCLUDE_PHANTOMS flag is not specified and this resource does not exist.
if (!includePhantoms && !exists()) {
throw new CoreException(new CModelStatus(ICModelStatus.ERROR));
}
// The INCLUDE_PHANTOMS flag is not specified and this resource is
// a project that is not open.
if (!includePhantoms && !getProject().isOpen()) {
throw new CoreException(new CModelStatus(ICModelStatus.ERROR));
}
if ((!isPhantom() && !isTeamPrivateMember()) ||
(includePhantoms && isPhantom()) ||
(includeTeamPrivateMember && isTeamPrivateMember())) {
// If the visitor returns false, this resource's members are not visited.
if (!visitor.visit(this)) {
return;
}
}
// Full stop here.
if (depth == DEPTH_ZERO) {
return;
}
// Bail out here if not a container.
if (getType() == IResource.FILE) {
return;
}
// Advance.
if (depth == DEPTH_ONE) {
depth = DEPTH_ZERO;
}
IResource[] members = ((IContainer)this).members(memberFlags);
for (int i = 0; i < members.length; i++) {
members[i].accept(visitor, depth, memberFlags);
}
}
/**
* @see org.eclipse.core.resources.IResource#copy(IPath, boolean, IProgressMonitor)
*/
public void copy(IPath destination, boolean force,
IProgressMonitor monitor) throws CoreException {
copy(destination, (force ? FORCE : IResource.NONE), monitor);
}
/**
* @see org.eclipse.core.resources.IResource#copy(IProjectDescription, boolean, IProgressMonitor)
*/
public void copy(IProjectDescription description, boolean force,
IProgressMonitor monitor) throws CoreException {
copy(description, (force ? FORCE : IResource.NONE), monitor);
}
/**
* @see org.eclipse.core.resources.IResource#copy(IProjectDescription, int, IProgressMonitor)
*/
public void copy(IProjectDescription description, int updateFlags,
IProgressMonitor monitor) throws CoreException {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject destProject = root.getProject(description.getName());
IPath destination = destProject.getFullPath();
copy(destination, updateFlags, monitor);
}
/**
* @see org.eclipse.core.resources.IResource#copy(IPath, int, IProgressMonitor)
*/
public void copy(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
int type = getType();
if (type == IResource.FILE) {
IFile oFile = (IFile)this;
IFile nFile = root.getFile(destination);
nFile.create(oFile.getContents(), updateFlags, monitor);
} else if (type == IResource.FOLDER) {
IFolder oFolder = (IFolder) this;
IFolder nFolder = root.getFolder(destination);
nFolder.create(updateFlags, true, monitor);
IResource[] children = oFolder.members(IContainer.INCLUDE_TEAM_PRIVATE_MEMBERS);
for (int i = 0; i < children.length; i++) {
IResource child = children[i];
child.copy(destination.append(child.getName()), updateFlags, monitor);
}
}
}
/**
* @see org.eclipse.core.resources.IResource#delete(boolean, IProgressMonitor)
*/
public void delete(boolean force, IProgressMonitor monitor) throws CoreException {
delete(force ? FORCE : IResource.NONE, monitor);
}
/**
* @see org.eclipse.core.resources.IResource#move(IPath, boolean, IProgressMonitor)
*/
public void move(IPath destination, boolean force, IProgressMonitor monitor)
throws CoreException {
move(destination, force ? FORCE : IResource.NONE, monitor);
}
/**
* @see org.eclipse.core.resources.IResource#move(IProjectDescription, boolean, boolean, IProgressMonitor)
*/
public void move(IProjectDescription description, boolean force, boolean keepHistory,
IProgressMonitor monitor) throws CoreException {
move(description, (keepHistory ? KEEP_HISTORY : IResource.NONE) | (force ? FORCE : IResource.NONE), monitor);
}
/**
* @see org.eclipse.core.resources.IResource#move(IProjectDescription, int, IProgressMonitor)
*/
public void move(IProjectDescription description, int updateFlags,
IProgressMonitor monitor) throws CoreException {
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject destProject = root.getProject(description.getName());
IPath destination = destProject.getFullPath();
move(destination, updateFlags, monitor);
}
/**
* @see org.eclipse.core.resources.IResource#move(IPath, int, IProgressMonitor)
*/
public void move(IPath destination, int updateFlags, IProgressMonitor monitor)
throws CoreException {
// FIXME: this is not atomic.
copy(destination, updateFlags, monitor);
delete(updateFlags, monitor);
}
/**
* @see org.eclipse.core.resources.IResource#createMarker(String)
*/
public IMarker createMarker(String type) throws CoreException {
IMarker marker = new Marker(this, type);
if (markers == null) {
markers = new ArrayList();
}
markers.add(marker);
return marker;
}
/**
* @see org.eclipse.core.resources.IResource#deleteMarkers(String, boolean, int)
*/
public void deleteMarkers(String type, boolean includeSubtypes, int depth)
throws CoreException {
if (markers != null) {
markers.clear();
}
}
/**
* @see org.eclipse.core.resources.IResource#findMarker(long)
*/
public IMarker findMarker(long id) throws CoreException {
if (markers != null) {
for (int i = 0; i < markers.size(); i++) {
IMarker marker = (IMarker)markers.get(i);
if (marker.getId() == id) {
return marker;
}
}
}
return null;
}
/**
* @see org.eclipse.core.resources.IResource#findMarkers(String, boolean, int)
*/
public IMarker[] findMarkers(String type, boolean includeSubtypes,
int depth) throws CoreException {
if (markers != null) {
ArrayList aList = new ArrayList();
for (int i = 0; i < markers.size(); i++) {
IMarker marker = (IMarker)markers.get(i);
if (marker.getType().equals(type)) {
aList.add(marker);
}
}
return (IMarker[]) aList.toArray(new IMarker[0]);
}
return new IMarker[0];
}
/**
* @see org.eclipse.core.resources.IResource#getMarker(long)
*/
public IMarker getMarker(long id) {
try {
IMarker marker = findMarker(id);
if (marker != null) {
return marker;
}
} catch (CoreException e) {
}
Marker marker = new Marker(this, "");
marker.setId(id);
return marker;
}
/**
* @see org.eclipse.core.resources.IResource#getSessionProperty(QualifiedName)
*/
public Object getSessionProperty(QualifiedName key) throws CoreException {
if (sessionProperties != null) {
return sessionProperties.get(key);
}
return null;
}
/**
* @see org.eclipse.core.resources.IResource#setSessionProperty(QualifiedName, Object)
*/
public void setSessionProperty(QualifiedName key, Object value)
throws CoreException {
if (sessionProperties == null) {
sessionProperties = new HashMap(5);
}
sessionProperties.put(key, value);
}
/**
* @see org.eclipse.core.resources.IResource#getFileExtension()
*/
public String getFileExtension() {
return getFullPath().getFileExtension();
}
/**
* @see org.eclipse.core.resources.IResource#getLocation()
*/
public IPath getLocation() {
return getProject().getLocation().append(getFullPath());
}
/**
* @see org.eclipse.core.resources.IResource#getName()
*/
public String getName() {
return getFullPath().lastSegment();
}
/**
* @see org.eclipse.core.resources.IResource#getProject()
*/
public IProject getProject() {
return getParent().getProject();
}
/**
* @see org.eclipse.core.resources.IResource#getProjectRelativePath()
*/
public IPath getProjectRelativePath() {
return getFullPath().removeFirstSegments(getProject().getFullPath().segmentCount());
}
/**
* @see org.eclipse.core.resources.IResource#getWorkspace()
*/
public IWorkspace getWorkspace() {
return getProject().getWorkspace();
}
/**
* @see org.eclipse.core.resources.IResource#clearHistory(IProgressMonitor)
*/
public void clearHistory(IProgressMonitor monitor) throws CoreException {
}
/**
* @see org.eclipse.core.resources.IResource#isAccessible()
*/
public boolean isAccessible() {
int type = getType();
if (type == IResource.FILE || type == IResource.FOLDER) {
return exists();
} else if (type == IResource.PROJECT) {
IProject project = (IProject)this;
return exists() && project.isOpen();
} else if (type == IResource.ROOT) {
return true;
}
return false;
}
/**
* @see org.eclipse.core.resources.IResource#isDerived()
*/
public boolean isDerived() {
return derived;
}
/**
* @see org.eclipse.core.resources.IResource#isLocal(int)
*/
public boolean isLocal(int depth) {
return !isPhantom();
}
/**
* @see org.eclipse.core.resources.IResource#isPhantom()
*/
public boolean isPhantom() {
return !exists();
}
/**
* @see org.eclipse.core.resources.IResource#isReadOnly()
*/
public boolean isReadOnly() {
return readOnly;
}
/**
* @see org.eclipse.core.resources.IResource#isSynchronized(int)
*/
public boolean isSynchronized(int depth) {
if (getType() == IResource.ROOT) {
if (depth == IResource.DEPTH_ZERO) {
return true;
}
if (depth == IResource.DEPTH_ONE) {
depth = IResource.DEPTH_ZERO;
}
IProject[] projects = ((IWorkspaceRoot)this).getProjects();
for (int i = 0; i < projects.length; i++) {
if (projects[i].isSynchronized(depth))
return false;
}
return true;
}
return exists();
}
/**
* @see org.eclipse.core.resources.IResource#isTeamPrivateMember()
*/
public boolean isTeamPrivateMember() {
return teamPrivate;
}
/**
* @see org.eclipse.core.resources.IResource#setDerived(boolean)
*/
public void setDerived(boolean isDerived) throws CoreException {
derived = isDerived;
}
/**
* @see org.eclipse.core.resources.IResource#setLocal(boolean, int, IProgressMonitor)
*/
public void setLocal(boolean flag, int depth, IProgressMonitor monitor)
throws CoreException {
local = flag;
if (getType() == IResource.FILE || depth == IResource.DEPTH_ZERO) {
return;
}
if (depth == IResource.DEPTH_ONE)
depth = IResource.DEPTH_ZERO;
IResource[] children = ((IContainer) this).members();
for (int i = 0; i < children.length; i++) {
children[i].setLocal(flag, depth, monitor);
}
}
/**
* @see org.eclipse.core.resources.IResource#setReadOnly(boolean)
*/
public void setReadOnly(boolean read) {
this.readOnly = read;
}
/**
* @see org.eclipse.core.resources.IResource#setTeamPrivateMember(boolean)
*/
public void setTeamPrivateMember(boolean isTeamPrivate)
throws CoreException {
teamPrivate = isTeamPrivate;
}
/**
* @see org.eclipse.core.resources.IResource#exists()
*/
public abstract boolean exists();
/**
* @see org.eclipse.core.resources.IResource#refreshLocal(int, IProgressMonitor)
*/
public abstract void refreshLocal(int depth, IProgressMonitor monitor) throws CoreException;
/**
* @see org.eclipse.core.resources.IResource#getFullPath()
*/
public abstract IPath getFullPath();
/**
* @see org.eclipse.core.resources.IResource#getParent()
*/
public abstract IContainer getParent();
/**
* @see org.eclipse.core.resources.IResource#getType()
*/
public abstract int getType();
/**
* @see org.eclipse.core.resources.IResource#getModificationStamp()
*/
public abstract long getModificationStamp();
/**
* @see org.eclipse.core.resources.IResource#delete(int, IProgressMonitor)
*/
public abstract void delete(int updateFlags, IProgressMonitor monitor) throws CoreException;
/**
* @see org.eclipse.core.resources.IResource#touch(IProgressMonitor)
*/
public abstract void touch(IProgressMonitor monitor) throws CoreException;
/**
* @see org.eclipse.core.resources.IResource#setPersistentProperty(QualifiedName, String)
*/
public abstract void setPersistentProperty(QualifiedName key, String value) throws CoreException;
/**
* @see org.eclipse.core.resources.IResource#getPersistentProperty(QualifiedName)
*/
public abstract String getPersistentProperty(QualifiedName key) throws CoreException;
/**
* @see org.eclipse.core.resources.IResource#isLinked()
*/
public boolean isLinked() {
return false; // If this changes to true then need to change getRawLocation below
}
/**
* @see org.eclipse.core.resources.IResource#getRawLocation()
*/
public IPath getRawLocation() {
return getLocation();
}
}