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:
rmfuhrer 2007-12-06 14:31:45 +00:00
parent fc1cf61c1b
commit da1ac21d12
1 changed files with 13 additions and 1 deletions

View File

@ -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);