package monolipse.core.internal;
import monolipse.core.IAssemblyReference;
import monolipse.core.IAssemblyReferenceVisitor;
import monolipse.core.ILocalAssemblyReference;
import monolipse.core.IMemorable;
import monolipse.core.IRemembrance;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
public class LocalAssemblyReference implements ILocalAssemblyReference {
IFile _reference;
LocalAssemblyReference(IFile reference) {
_reference = reference;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public Object getAdapter(Class adapter) {
if (adapter.isAssignableFrom(IFile.class)) {
return _reference;
}
return null;
}
public String getAssemblyName() {
return _reference.getName();
}
public IFile getFile() {
return _reference;
}
public String getCompilerReference() {
return _reference.getLocation().toOSString();
}
public String getType() {
return IAssemblyReference.LOCAL;
}
static public class Remembrance implements IRemembrance {
public String path;
public Remembrance(String path) {
this.path = path;
}
/**
* public no arg constructor for xstream deserialization
* on less capable virtual machines.
*/
public Remembrance() {
}
@Override
public String toString() {
return path;
}
public IMemorable activate() throws CoreException {
return AssemblyReferences.assemblyReferenceFor(ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(this.path)));
}
}
public IRemembrance getRemembrance() {
return new Remembrance(_reference.getFullPath().toPortableString());
}
public boolean accept(IAssemblyReferenceVisitor visitor) throws CoreException {
return visitor.visit(this);
}
}