@Override protected void setUp() throws Exception { super.setUp(); expectedGoodQuery = new PathQuery(model); expectedGoodQuery.addViews("Employee.age", "Employee.name"); expectedGoodQuery.addConstraint(Constraints.eq("Employee.name", "Tim Canterbury")); pqb = new PathQueryBuilder(); }
/** * Tell the requester about all the reference sequences that have data (are of non-zero * length) and are in the correct domain. */ private void serveRefSeqs() { Model m = im.getModel(); ClassDescriptor ref = m.getClassDescriptorByName(refType); if (ref == null) { throw new ResourceNotFoundException("No class called " + ref); } PathQuery pq = new PathQuery(m); pq.addView(refType + ".id"); pq.addConstraint(Constraints.greaterThan(refType + "." + lengthPath, "0")); pq.addConstraint(Constraints.eq(refType + "." + domainPath, domain)); Query q = pathQueryToOSQ(pq); SingletonResults res = im.getObjectStore().executeSingleton(q); if (res.size() == 0) { throw new ResourceNotFoundException("No " + refType + "s on " + domain); } Iterator<Object> it = res.iterator(); while (it.hasNext()) { FastPathObject o = (FastPathObject) it.next(); Map<String, Object> refseq = makeRefSeq(o); addResultItem(refseq, it.hasNext()); } }
private PathQuery getQuery(String domain, ConstraintOp op, String searchTerm) { PathQuery pq = new PathQuery(im.getModel()); String propertyPrefix = getPropertyPrefix(); String[] paths = getNamePaths(); String type = webProperties.getProperty(propertyPrefix + "featureClass"); String domainPath = webProperties.getProperty(propertyPrefix + "domain"); String locationPath = webProperties.getProperty(propertyPrefix + "location"); pq.addView(type + ".id"); StringBuffer logic = new StringBuffer(); // must have location logic.append(pq.addConstraint(Constraints.isNotNull(type + "." + locationPath + ".id"))); logic.append(" AND "); // and be on the right domain. logic.append(pq.addConstraint(Constraints.eq(type + "." + domainPath, domain))); logic.append(" AND "); logic.append(" ("); for (int i = 0; i < paths.length; i++) { PathConstraint c = new PathConstraintAttribute(type + "." + paths[i], op, searchTerm); logic.append(pq.addConstraint(c)); if (i + 1 < paths.length) { logic.append(" OR "); } } logic.append(")"); pq.setConstraintLogic(logic.toString()); return pq; }
if (bagOrIds instanceof InterMineBag) { InterMineBag bag = (InterMineBag) bagOrIds; tq.replaceConstraint(c, Constraints.in(parent, bag.getName())); } else if (bagOrIds instanceof Collection) { @SuppressWarnings("unchecked") Collection<Integer> ids = (Collection<Integer>) bagOrIds; tq.replaceConstraint(c, Constraints.inIds(parent, ids));
public void testGetPathQuery() { PathQuery q = new PathQuery(os.getModel()); q.addView("Employee.name"); q.addView("Employee.age"); q.addView("Employee.fullTime"); q.addView("Employee.department.name"); // bag constraint q.addConstraint(Constraints.in(config.getStartClass(), bag.getName())); q.addConstraint(Constraints.eq("Employee.age", "%category")); q.addConstraint(Constraints.neq("Employee.age", "40")); PathQuery widgetPathQuery = widget.getPathQuery(); assertEquals(q, widgetPathQuery); }
public void testTicket2636() throws Exception { Model model = Model.getInstanceByName("testmodel"); PathQuery q = new PathQuery(model); // Add views q.addView("Company.CEO.address.address"); // Add constraints and you can edit the constraint values below q.addConstraint(Constraints.lookup("Company", "Capitol Versicherung AG", ""), "A"); q.addConstraint(Constraints.lessThan("Company.vatNumber", "392018"), "B"); q.addConstraint(Constraints.eq("Company.departments.name", "Accounting"), "C"); // Add join status q.setOuterJoinStatus("Company.CEO", OuterJoinStatus.OUTER); // Add constraintLogic q.setConstraintLogic("(A and B) or C"); assertTrue("The query is now invalid", !q.isValid()); List<String> messages = q.fixUpForJoinStyle(); assertTrue("We should get a message that the logic was changed", messages.size() == 1 && messages.get(0).contains("Changed constraint logic")); assertNotNull(q.getConstraintLogic()); assertEquals("A and B and C", q.getConstraintLogic()); assertTrue("The query is now valid", q.isValid()); }
@Test public void nullPathQueryCollections() { PathQuery pq = new PathQuery(osw.getModel()); pq.addView("Department.name"); pq.addConstraint(Constraints.eq("Department.name", "temp-*")); pq.addConstraint(Constraints.isNull("Department.employees")); Query q = makeQuery(pq); System.out.println(q.toString()); doNullCollectionTests(q); }
public void testGreaterThan() { PathQuery q = new PathQuery(Model.getInstanceByName("testmodel")); q.addConstraint(Constraints.greaterThan("Employee.length", "1")); assertEquals("<query name=\"query\" model=\"testmodel\" view=\"\" longDescription=\"\"><constraint path=\"Employee.length\" op=\">\" value=\"1\"/></query>", q.toXml(1)); }
public void testIsNotNull() { PathQuery q = new PathQuery(Model.getInstanceByName("testmodel")); q.addConstraint(Constraints.isNotNull("Employee.name")); assertEquals("<query name=\"query\" model=\"testmodel\" view=\"\" longDescription=\"\"><constraint path=\"Employee.name\" op=\"IS NOT NULL\"/></query>", q.toXml(1)); }
public void testIn() { PathQuery q = new PathQuery(Model.getInstanceByName("testmodel")); q.addConstraint(Constraints.in("Employee", " ")); assertEquals("<query name=\"query\" model=\"testmodel\" view=\"\" longDescription=\"\"><constraint path=\"Employee\" op=\"IN\" value=\" \"/></query>", q.toXml(1)); }
/** * This method tests when a path query has one constraint - PathConstraintIds * ConstraintOp.IN * * Test PathQuery: */ public void testPathQueryCodeGenerationWithConstraintInIds() { Model testmodel = Model.getInstanceByName("testmodel"); PathQuery pq = new PathQuery(testmodel); pq.addViews("Employee.name", "Employee.age"); pq.addConstraint(Constraints.inIds("Employee", Arrays.asList(1, 2, 3, 4, 5))); doComparison(pq, "inids-query"); }
/** * Creates a query that returns the summary for a column in a PathQuery, applying a filter at * the database level. * * @param filterTerm what to filter by * @param asOccurrances If true, will only return the list of values and their counts. * @param pq the query to convert * @param summaryPath the column to summarise * @return an IQL Query object * @throws ObjectStoreException if there is a problem creating the query */ public Query makeSummaryQuery(PathQuery pq, String summaryPath, String filterTerm, boolean asOccurrances) throws ObjectStoreException { PathQuery clone = pq.clone(); clone.addConstraint(Constraints.contains(summaryPath, filterTerm)); Query q = makeSummaryQuery(clone, summaryPath, asOccurrances); return q; }
public void testLookup() { PathQuery q = new PathQuery(Model.getInstanceByName("testmodel")); q.addConstraint(Constraints.lookup("Employee.name", "bob", null)); assertEquals("<query name=\"query\" model=\"testmodel\" view=\"\" longDescription=\"\"><constraint path=\"Employee.name\" op=\"LOOKUP\" value=\"bob\"/></query>", q.toXml(1)); }
public void testIsNull() { PathQuery q = new PathQuery(Model.getInstanceByName("testmodel")); q.addConstraint(Constraints.isNull("Employee.name")); assertEquals("<query name=\"query\" model=\"testmodel\" view=\"\" longDescription=\"\"><constraint path=\"Employee.name\" op=\"IS NULL\"/></query>", q.toXml(1)); }
public void testLessThan() { PathQuery q = new PathQuery(Model.getInstanceByName("testmodel")); q.addConstraint(Constraints.lessThan("Employee.length", "1")); assertEquals("<query name=\"query\" model=\"testmodel\" view=\"\" longDescription=\"\"><constraint path=\"Employee.length\" op=\"<\" value=\"1\"/></query>", q.toXml(1)); }
if (bagOrIds instanceof InterMineBag) { InterMineBag bag = (InterMineBag) bagOrIds; tq.replaceConstraint(c, Constraints.in(parent, bag.getName())); } else if (bagOrIds instanceof Collection) { @SuppressWarnings("unchecked") Collection<Integer> ids = (Collection<Integer>) bagOrIds; tq.replaceConstraint(c, Constraints.inIds(parent, ids));
@Before public void setUp() throws Exception { Model model = Model.getInstanceByName("testmodel"); ObjectStoreWriter osw = ObjectStoreWriterFactory.getObjectStoreWriter("osw.unittest"); os = osw.getObjectStore(); Map data = ObjectStoreTestUtils.getTestData("testmodel", "testmodel_data.xml"); ObjectStoreTestUtils.storeData(osw, data); osw.close(); uosw = ObjectStoreWriterFactory.getObjectStoreWriter("osw.userprofile-test"); pm = new ProfileManager(os, uosw); profile = new Profile(pm, "testUser", null, "password", new HashMap(), new HashMap(), new HashMap(), null, true, false); pm.createProfile(profile); TemplateQuery twoConstraints = new TemplateQuery("twoConstraints", "twoConstraints", "", new PathQuery(model)); twoConstraints.addViews("Employee.name", "Employee.age"); PathConstraint ageCon = Constraints.greaterThan("Employee.age", "30"); twoConstraints.addConstraint(ageCon); twoConstraints.setEditable(ageCon, true); PathConstraint depCon = Constraints.greaterThan("Employee.department.name", "Finance"); twoConstraints.addConstraint(depCon); twoConstraints.setEditable(depCon, true); profile.saveTemplate("template", new ApiTemplate(twoConstraints)); }
public void testGetPathQuery() { PathQuery q = new PathQuery(os.getModel()); q.addView("Employee.name"); q.addView("Employee.age"); q.addView("Employee.department.name"); // bag constraint q.addConstraint(Constraints.in(config.getStartClass(), bag.getName())); assertEquals(q, widget.getPathQuery()); }
/** * This method tests when a template query has one constraint - PathConstraintIds * ConstraintOp.IN * * Can not be tested */ public void testTemplateQueryCodeGenerationWithConstraintInIds() { Model testmodel = Model.getInstanceByName("testmodel"); PathQuery pq = new PathQuery(testmodel); pq.addViews("Employee.name", "Employee.age"); String code = pq.addConstraint(Constraints.inIds("Employee", Arrays.asList(1, 2, 3, 4, 5))); TemplateQuery tq = new TemplateQuery("TEMP_NAME", "TEMP_TITLE", "TEMP_DESC", pq); tq.setEditable(tq.getConstraintForCode(code), true); doTemplateComparison(tq, "inids-template"); }