当前位置: 首页>>代码示例>>Java>>正文


Java ReductionSystem类代码示例

本文整理汇总了Java中com.intellij.refactoring.typeCook.deductive.builder.ReductionSystem的典型用法代码示例。如果您正苦于以下问题:Java ReductionSystem类的具体用法?Java ReductionSystem怎么用?Java ReductionSystem使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ReductionSystem类属于com.intellij.refactoring.typeCook.deductive.builder包,在下文中一共展示了ReductionSystem类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: ResolverTree

import com.intellij.refactoring.typeCook.deductive.builder.ReductionSystem; //导入依赖的package包/类
public ResolverTree(final ReductionSystem system) {
  myBindingFactory = new BindingFactory(system);
  mySolutions = new SolutionHolder();
  myCurrentBinding = myBindingFactory.create();
  myConstraints = system.getConstraints();
  myProject = system.getProject();
  myBindingDegree = calculateDegree();
  mySettings = system.getSettings();

  reduceCyclicVariables();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:12,代码来源:ResolverTree.java

示例2: findUsages

import com.intellij.refactoring.typeCook.deductive.builder.ReductionSystem; //导入依赖的package包/类
@NotNull
protected UsageInfo[] findUsages() {
  final SystemBuilder systemBuilder = new SystemBuilder(myProject, mySettings);

  final ReductionSystem commonSystem = systemBuilder.build(myElements);
  myResult = new Result(commonSystem);

  final ReductionSystem[] systems = commonSystem.isolate();

  for (final ReductionSystem system : systems) {
    if (system != null) {
      final ResolverTree tree = new ResolverTree(system);

      tree.resolve();

      final Binding solution = tree.getBestSolution();

      if (solution != null) {
        myResult.incorporateSolution(solution);
      }
    }
  }

  final Set<PsiElement> changedItems = myResult.getCookedElements();
  final UsageInfo[] usages = new UsageInfo[changedItems.size()];

  int i = 0;
  for (final PsiElement element : changedItems) {
    if (!(element instanceof PsiTypeCastExpression)) {
      usages[i++] = new UsageInfo(element) {
        public String getTooltipText() {
          return myResult.getCookedType(element).getCanonicalText();
        }
      };
    }
    else {
      usages[i++] = new UsageInfo(element);
    }
  }

  return usages;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:43,代码来源:TypeCookProcessor.java

示例3: BindingFactory

import com.intellij.refactoring.typeCook.deductive.builder.ReductionSystem; //导入依赖的package包/类
public BindingFactory(final ReductionSystem system) {
  myBoundVariables = system.getBoundVariables();
  myProject = system.getProject();
  myFactory = system.getVariableFactory();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:6,代码来源:BindingFactory.java

示例4: performAction

import com.intellij.refactoring.typeCook.deductive.builder.ReductionSystem; //导入依赖的package包/类
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");
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:72,代码来源:TypeCookTest.java

示例5: findUsages

import com.intellij.refactoring.typeCook.deductive.builder.ReductionSystem; //导入依赖的package包/类
@NotNull
protected UsageInfo[] findUsages() {
  final SystemBuilder systemBuilder = new SystemBuilder(myProject, mySettings);

  final ReductionSystem commonSystem = systemBuilder.build(myElements);
  myResult = new Result(commonSystem);

  final ReductionSystem[] systems = commonSystem.isolate();

  for (final ReductionSystem system : systems) {
    if (system != null) {
      final ResolverTree tree = new ResolverTree(system);

      tree.resolve();

      final Binding solution = tree.getBestSolution();

      if (solution != null) {
        myResult.incorporateSolution(solution);
      }
    }
  }

  final HashSet<PsiElement> changedItems = myResult.getCookedElements();
  final UsageInfo[] usages = new UsageInfo[changedItems.size()];

  int i = 0;
  for (final PsiElement element : changedItems) {
    if (!(element instanceof PsiTypeCastExpression)) {
      usages[i++] = new UsageInfo(element) {
        public String getTooltipText() {
          return myResult.getCookedType(element).getCanonicalText();
        }
      };
    }
    else {
      usages[i++] = new UsageInfo(element);
    }
  }

  return usages;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:43,代码来源:TypeCookProcessor.java


注:本文中的com.intellij.refactoring.typeCook.deductive.builder.ReductionSystem类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。