package monolipse.core.internal;
import java.io.IOException;
import org.eclipse.core.runtime.CoreException;
import monolipse.core.BooCore;
import monolipse.core.IAssemblyReference;
import monolipse.core.IAssemblyReferenceVisitor;
import monolipse.core.IBooAssemblyReference;
import monolipse.core.IMemorable;
import monolipse.core.IRemembrance;
public class BooAssemblyReference implements IBooAssemblyReference, IRemembrance {
private String assemblyName;
/**
* For serialization only.
*/
public BooAssemblyReference() {
}
public BooAssemblyReference(String booAssemblyName) {
this.assemblyName = booAssemblyName;
}
@Override
public int hashCode() {
return assemblyName.hashCode();
}
@Override
public boolean equals(Object obj) {
return obj instanceof BooAssemblyReference
? ((BooAssemblyReference)obj).assemblyName.equals(assemblyName)
: false;
}
@Override
public IRemembrance getRemembrance() {
return this;
}
@Override
public String getAssemblyName() {
return assemblyName;
}
@Override
public String getCompilerReference() {
try {
return BooCore.resolveBundlePath("lib/boojay/" + assemblyName + ".dll");
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
@Override
public String getType() {
return IAssemblyReference.BOO_LIB;
}
@Override
public boolean accept(IAssemblyReferenceVisitor visitor)
throws CoreException {
return visitor.visit(this);
}
public IMemorable activate() throws CoreException {
return this;
}
}