예제 #1
0
 public ArrayList<LSDPredicate> getMethodLevelDependency() {
   String prefix = this.getPrefix();
   ArrayList<LSDPredicate> preds = new ArrayList<LSDPredicate>();
   preds.add(LSDPredicate.getPredicate(prefix + "_calls"));
   preds.add(LSDPredicate.getPredicate(prefix + "_accesses"));
   return preds;
 }
예제 #2
0
 /** @param args */
 public static void main(String[] args) {
   LSDPredicate foo = LSDPredicate.getPredicate("deleted_field");
   assert foo.getName() == "deleted_field";
   assert foo.arity() == 1;
   assert null == LSDPredicate.getPredicate("added_bogusMethod");
   foo = LSDPredicate.getPredicate("added_inheritedmethod");
   assert foo.getName() == "added_inheritedmethod";
   assert foo.arity() == 3;
   ArrayList<LSDBinding> bindings = new ArrayList<LSDBinding>();
   LSDBinding binding = new LSDBinding(new LSDVariable("a", 'm'));
   bindings.add(binding);
   binding = new LSDBinding(new LSDVariable("c", 't'));
   bindings.add(binding);
   assert false == foo.typeChecks(bindings);
   binding = new LSDBinding(new LSDVariable("b", 't'));
   bindings.add(binding);
   assert true == foo.typeChecks(bindings);
   bindings = new ArrayList<LSDBinding>();
   binding = new LSDBinding(new LSDVariable("a", 'f'));
   bindings.add(binding);
   binding = new LSDBinding(new LSDVariable("c", 't'));
   bindings.add(binding);
   binding = new LSDBinding(new LSDVariable("b", 't'));
   bindings.add(binding);
   assert false == foo.typeChecks(bindings);
   assert foo.toString().equals("added_inheritedmethod(m,t,t)");
   System.out.println("Predicate tests succeeded.");
 }
예제 #3
0
 public LSDPredicate toClassLevel() {
   if (isConclusionPredicate()) return LSDPredicate.getPredicate("changed_type");
   else {
     if (predName.contains("accesses") || predName.contains("calls")) {
       String newPred = predName.substring(0, predName.indexOf('_')) + "_dependency";
       return LSDPredicate.getPredicate(newPred);
     } else return this;
   }
 }