package org.absmodels.abs.plugin.editor.outline;
import java.io.File;
import java.net.URI;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.URIUtil;
/**
* A lightweight class recording a single ABS file entry in a ABS package.
* It implements {@link AbsFile}
*
* @author pwong
*
*/
public class PackageAbsFile implements AbsFile {
private final PackageEntry parent;
private final String name;
private final String extension;
private final URI uri;
public PackageAbsFile(PackageEntry parent, String name) {
this.parent = parent;
this.name = name;
this.extension = name.substring(name.lastIndexOf(".")+1,name.length());
this.uri = URIUtil.toJarURI(new File(parent.getPath()).toURI(),new Path(name));
}
public PackageEntry getParent() {
return parent;
}
public String getName() {
return name;
}
public IProject getProject() {
PackageContainer container = parent.getPackageContainer();
if (container != null) {
return container.getProject();
}
return null;
}
public String getFileExtension() {
return extension;
}
public String getAbsoluteFilePath() {
return uri.toString();
}
public URI getURI() {
return uri;
}
}