private void performAction(String className, String rootDir, final boolean cookObjects) throws Exception { PsiClass aClass = myJavaFacade.findClass(className, GlobalSearchScope.allScope(myProject)); assertNotNull("Class " + className + " not found", aClass); SystemBuilder b = new SystemBuilder( myPsiManager.getProject(), new Settings() { @Override public boolean dropObsoleteCasts() { return true; } @Override public boolean preserveRawArrays() { return false; } @Override public boolean leaveObjectParameterizedTypesRaw() { return false; } @Override public boolean exhaustive() { return false; } @Override public boolean cookObjects() { return cookObjects; } @Override public boolean cookToWildcards() { return false; } }); final ReductionSystem commonSystem = b.build(aClass); // System.out.println("System built:\n" + commonSystem); final ReductionSystem[] systems = commonSystem.isolate(); // System.out.println("Systems isolated:\n" + commonSystem); ReductionSystem system = null; for (ReductionSystem s : systems) { if (s != null && system == null) { // System.out.println(s); system = s; } } Binding binding = null; if (system != null) { final ResolverTree tree = new ResolverTree(system); tree.resolve(); binding = tree.getBestSolution(); } String itemRepr = system != null ? system.dumpString() : commonSystem.dumpString(); // d.resultString(); doStuff(rootDir, itemRepr, className + ".items"); itemRepr = system != null ? system.dumpResult(binding) : commonSystem.dumpString(); // d.resultString(); doStuff(rootDir, itemRepr, className + ".1.items"); }
public BindingFactory(final ReductionSystem system) { myBoundVariables = system.getBoundVariables(); myProject = system.getProject(); myFactory = system.getVariableFactory(); }