package org.objectstyle.wolips.core.resources;
import java.util.LinkedList;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.Path;
import org.objectstyle.wolips.baseforuiplugins.utils.WorkbenchUtilities;
import org.objectstyle.wolips.locate.LocatePlugin;
public class EOModelWOLipsResource implements IWOLipsResource {
private IResource _resource;
public EOModelWOLipsResource(IResource resource) {
_resource = resource;
}
public IResource getUnderlyingResource() {
return _resource;
}
public List<IResource> getRelatedResources() {
List<IResource> relatedResources = new LinkedList<IResource>();
relatedResources.add(_resource);
String extension = _resource.getFileExtension();
String fileWithoutExtension = LocatePlugin.getDefault().fileNameWithoutExtension(_resource);
IResource relatedResource;
if ("eogen".equals(extension)) {
relatedResource = _resource.getParent().getFolder(new Path(fileWithoutExtension + ".eomodeld"));
}
else {
relatedResource = _resource.getParent().getFile(new Path(fileWithoutExtension + ".eogen"));
}
if (relatedResource.exists()) {
relatedResources.add(relatedResource);
}
return relatedResources;
}
@Override
public int hashCode() {
return _resource == null ? 0 : _resource.hashCode();
}
public boolean equals(Object obj) {
return _resource != null && obj instanceof IWOLipsResource && _resource.equals(((IWOLipsResource) obj).getUnderlyingResource());
}
@Override
public String toString() {
return "[" + getClass().getSimpleName() + ": " + _resource + "]";
}
public void open() {
IFile index = (IFile) ((IFolder) _resource).findMember("index.eomodeld");
WorkbenchUtilities.open(index);
}
}