From da1ac21d122a46ac149cd4472af5d54e06763172 Mon Sep 17 00:00:00 2001 From: rmfuhrer Date: Thu, 6 Dec 2007 14:31:45 +0000 Subject: [PATCH] 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 --- .../src/com/ibm/wala/classLoader/Language.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/com.ibm.wala.core/src/com/ibm/wala/classLoader/Language.java b/com.ibm.wala.core/src/com/ibm/wala/classLoader/Language.java index 144684852..4d2e19f3a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/classLoader/Language.java +++ b/com.ibm.wala.core/src/com/ibm/wala/classLoader/Language.java @@ -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 getDerivedLanguages(); + TypeReference getRootType(); TypeReference getConstantType(Object o);