protected AnalysisScope(Collection<? extends Language> languages) { super(); this.languages = new HashMap<>(); for (Language l : languages) { this.languages.put(l.getName(), l); } }
protected AnalysisScope(Collection<? extends Language> languages) { super(); this.languages = new HashMap<>(); for (Language l : languages) { this.languages.put(l.getName(), l); } }
private IClassHierarchy getHierarchy(IClassLoader loader) { return getHierarchy(loader.getLanguage().getName()); }
private IClassHierarchy getHierarchy(IClassLoader loader) { return getHierarchy(loader.getLanguage().getName()); }
public static CrossLanguageClassHierarchy make(AnalysisScope scope, ClassLoaderFactory factory) throws ClassHierarchyException { Set<Language> languages = scope.getBaseLanguages(); Map<Atom, IClassHierarchy> hierarchies = HashMapFactory.make(); for (Language L : languages) { Set<Language> ll = HashSetFactory.make(L.getDerivedLanguages()); ll.add(L); hierarchies.put(L.getName(), ClassHierarchyFactory.make(scope, factory, ll)); } return new CrossLanguageClassHierarchy(scope, factory, hierarchies); }
public static CrossLanguageClassHierarchy make(AnalysisScope scope, ClassLoaderFactory factory) throws ClassHierarchyException { Set<Language> languages = scope.getBaseLanguages(); Map<Atom, IClassHierarchy> hierarchies = HashMapFactory.make(); for (Language L : languages) { Set<Language> ll = HashSetFactory.make(L.getDerivedLanguages()); ll.add(L); hierarchies.put(L.getName(), ClassHierarchyFactory.make(scope, factory, ll)); } return new CrossLanguageClassHierarchy(scope, factory, hierarchies); }
this.languages.add(lang); this.languages.addAll(lang.getDerivedLanguages()); langNames.add(lang.getName());
this.languages.add(lang); this.languages.addAll(lang.getDerivedLanguages()); langNames.add(lang.getName());
public static void addDefaultDispatchLogic(AnalysisOptions options, IClassHierarchy cha) { com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha); Map<Atom,MethodTargetSelector> methodTargetSelectors = HashMapFactory.make(); methodTargetSelectors.put(JavaScriptLoader.JS.getName(), new JavaScriptConstructTargetSelector(cha, new StandardFunctionTargetSelector(cha, options.getMethodTargetSelector()))); methodTargetSelectors.put(Language.JAVA.getName(), options.getMethodTargetSelector()); options.setSelector(new CrossLanguageMethodTargetSelector(methodTargetSelectors)); }