1 21 package com.db4o.test; 22 23 import com.db4o.*; 24 import com.db4o.query.*; 25 26 public abstract class QueryByInterfaceBase { 27 28 private static class SimpleEvaluation implements Evaluation { 29 private String value; 30 31 private SimpleEvaluation(String value) { 32 this.value = value; 33 } 34 35 public void evaluate(Candidate candidate) { 36 candidate.include(((IFoo)candidate.getObject()).s().equals(value)); 37 } 38 } 39 40 public static interface IFoo { 41 String s(); 42 } 43 44 public static class Bar implements IFoo { 45 public int i; 46 47 public Bar(int i) { 48 this.i = i; 49 } 50 51 public String s() { 52 return String.valueOf((char)('A'+i)); 53 } 54 } 55 56 public static class Baz implements IFoo { 57 public String s; 58 59 public Baz(String s) { 60 this.s = s; 61 } 62 63 public String s() { 64 return s; 65 } 66 } 67 68 protected void assertSODA(String value,int expCount) { 69 Query query=Test.objectContainer().query(); 70 Constraint constraint=query.constrain(IFoo.class); 71 Test.ensure(constraint!=null); 72 query.descend("s").constrain(value); 73 ObjectSet result=query.execute(); 74 Test.ensure(result.size()==expCount); 75 } 76 77 protected void assertEvaluation(String value,int expCount) { 78 Query query=Test.objectContainer().query(); 79 Constraint constraint=query.constrain(IFoo.class); 80 Test.ensure(constraint!=null); 81 query.constrain(new SimpleEvaluation(value)); 82 ObjectSet result=query.execute(); 83 Test.ensure(result.size()==expCount); 84 } 85 } 86 | Popular Tags |