package monolipse.core.internal;
import java.text.MessageFormat;
import monolipse.core.BooCore;
import monolipse.core.IAssemblyReference;
import monolipse.core.IAssemblyReferenceVisitor;
import monolipse.core.IGlobalAssemblyCacheReference;
import monolipse.core.IMemorable;
import monolipse.core.IRemembrance;
import org.eclipse.core.runtime.CoreException;
public class GlobalAssemblyCacheReference implements IGlobalAssemblyCacheReference {
private String _name;
private String _version;
private String _culture;
private String _token;
public GlobalAssemblyCacheReference(String name, String version, String culture, String token) {
_name = name;
_version = version;
_culture = culture;
_token = token;
}
public String getAssemblyName() {
return _name;
}
public String getCompilerReference() {
// return "\"" + _name + ", Version=" + _version + ", Culture=" + _culture + ", PublicKeyToken=" + _token + "\"";
return _name;
}
public String getType() {
return IAssemblyReference.GAC;
}
public String getVersion() {
return _version;
}
public String getToken() {
return _token;
}
static public class Remembrance implements IRemembrance {
public String name;
public String version;
public String culture;
public String token;
public Remembrance(String name, String version, String culture, String token) {
this.name = name;
this.version = version;
this.culture = culture;
this.token = token;
}
/**
* public no arg constructor for xstream deserialization
* on less capable virtual machines.
*/
public Remembrance() {
}
@Override
public String toString() {
return MessageFormat.format("{}, Version={}, Culture={}, PublicKey={}", name, version, culture, token);
}
public IMemorable activate() throws CoreException {
return BooCore.getRuntime().getGlobalAssemblyCacheReference(name, version, culture, token);
}
}
public IRemembrance getRemembrance() {
return new Remembrance(_name, _version, _culture, _token);
}
public boolean accept(IAssemblyReferenceVisitor visitor) throws CoreException {
return visitor.visit(this);
}
}