Added API to Language for representing the hierarchy of languages, which is necessary for WALA ClassLoaders to correlate loaders to Languages and know which languages share a ClassHierarchy.
git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2110 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
parent
fc1cf61c1b
commit
da1ac21d12
|
@ -1,20 +1,25 @@
|
|||
package com.ibm.wala.classLoader;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import com.ibm.wala.types.ClassLoaderReference;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.Atom;
|
||||
|
||||
public interface Language {
|
||||
|
||||
public static Language JAVA = new Language() {
|
||||
public static Language JAVA = new LanguageImpl() {
|
||||
@Override
|
||||
public Atom getName() {
|
||||
return ClassLoaderReference.Java;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TypeReference getRootType() {
|
||||
return TypeReference.JavaLangObject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TypeReference getConstantType(Object o) {
|
||||
if (o instanceof String) {
|
||||
return TypeReference.JavaLangString;
|
||||
|
@ -23,6 +28,7 @@ public interface Language {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNullType(TypeReference type) {
|
||||
return false;
|
||||
}
|
||||
|
@ -30,6 +36,12 @@ public interface Language {
|
|||
|
||||
Atom getName();
|
||||
|
||||
Language getBaseLanguage();
|
||||
|
||||
void registerDerivedLanguage(Language l);
|
||||
|
||||
Set<Language> getDerivedLanguages();
|
||||
|
||||
TypeReference getRootType();
|
||||
|
||||
TypeReference getConstantType(Object o);
|
||||
|
|
Loading…
Reference in New Issue