public void testNullField() throws Exception { try { new QueryField(qc, (String)null); fail("A NullPointerException should have been thrown"); } catch (NullPointerException e) { } }
} else if (qn instanceof QueryField) { QueryField qf = (QueryField) qn; String origAlias = q.getAliases().get(qf.getFromElement()); qnNew = new QueryField((QueryClass) ret.getReverseAliases().get(origAlias), qf.getFieldName()); } else { throw new IllegalArgumentException("Method can only deal with QueryClass "
} else if (n instanceof QueryField) { QueryField f = (QueryField) n; if ("id".equals(f.getFieldName())) { FromElement qc = f.getFromElement(); if (qc instanceof QueryClass) { selectClasses.add((QueryClass) qc);
seen.add(buffer.toString()); if ((!q.getSelect().contains(node)) && (!q.getSelect().contains(new QueryField((QueryClass) node, "id")))) { if (q.isDistinct()) { if ((!q.getSelect().contains(node)) && q.isDistinct() && (node instanceof QueryField)) { FromElement fe = ((QueryField) node).getFromElement(); if (q.getSelect().contains(fe)) {
QueryField qf = (QueryField) origPathToQueryNode.get(summaryPath); try { if ((qf == null) || (!subQ.getFrom().contains(qf.getFromElement()))) { qf = new QueryField(lastQc, fieldName); subQ.addFrom(lastQc); subQ.addToSelect(lastQc); qf = new QueryField(firstQc, fieldName); subQ.addFrom(firstQc); subQ.addToSelect(firstQc); q.addFrom(subQ); subQ.addToSelect(qf); qf = new QueryField(subQ, qf); Class<?> summaryType = qf.getType(); String fieldName = origQf.getFieldName(); String className = Util.getFriendlyName(((QueryClass) origQf.getFromElement()) .getType());
} else if (qn instanceof QueryField) { QueryField qf = (QueryField) qn; return escapeReservedWord(q.getAliases().get(qf.getFromElement())) + "." + escapeReservedWord(qf.getFieldName()) + (qf.getSecondFieldName() == null ? "" : "." + escapeReservedWord(qf.getSecondFieldName())); } else if (qn instanceof QueryValue) { Object obj = ((QueryValue) qn).getValue();
QueryEvaluable bins = new QueryValue(SummaryConfig.getNumberOfBins()); Class<?> summaryType = qf.getType(); if (summaryType == Long.class || summaryType == Integer.class) { bins = new QueryExpression( bucketq.setDistinct(false); QueryFunction count = new QueryFunction(); QueryField val = new QueryField(vq, qf); QueryField maxval = new QueryField(statsq, max); QueryField minval = new QueryField(statsq, min); QueryField meanval = new QueryField(statsq, avg); QueryField devval = new QueryField(statsq, stddev); QueryExpression upperBound = new QueryExpression( new QueryCast(maxval, BigDecimal.class), QueryExpression.MULTIPLY, new QueryCast(new QueryValue(new Double(1.01)), BigDecimal.class)); QueryField noOfBuckets = new QueryField(statsq, bins); QueryField bmax = new QueryField(bucketq, maxval); QueryField bmin = new QueryField(bucketq, minval); QueryField bmean = new QueryField(bucketq, meanval); QueryField bdev = new QueryField(bucketq, devval); QueryField bbucket = new QueryField(bucketq, bucket); QueryFunction bucketTotal = new QueryFunction( new QueryField(bucketq, count), QueryFunction.SUM); QueryField buckets = new QueryField(bucketq, noOfBuckets); q.addFrom(bucketq);
/** * Returns true if the Constraint is a cross-reference between two QueryClasses. * A constraint is deemed to be a cross-reference if it compares fields of * two different QueryClasses, either directly or via QueryExpressions. * * @param constraint the contraint to test * @return true if the contraint is a cross-reference */ public static boolean isCrossReference(Constraint constraint) { if (constraint instanceof SimpleConstraint) { // if QueryField exposed part of a subquery QueryField.getFromElement() // returns a query, does not cause any problem. Set<FromElement> qcs = new HashSet<FromElement>(); for (QueryField qf : getQueryFields(((SimpleConstraint) constraint).getArg1())) { qcs.add(qf.getFromElement()); } for (QueryField qf : getQueryFields(((SimpleConstraint) constraint).getArg2())) { qcs.add(qf.getFromElement()); } if (qcs.size() > 1) { return true; } } return false; }
public void testGetRightArgument() { assertTrue(ConstraintHelper.getRightArgument(simpleConstraint1) instanceof QueryValue); assertEquals("Company1", ((QueryValue) ConstraintHelper.getRightArgument(simpleConstraint1)).getValue()); assertTrue(ConstraintHelper.getRightArgument(simpleConstraint2) instanceof QueryField); assertEquals("name", ((QueryField) ConstraintHelper.getRightArgument(simpleConstraint2)).getFieldName()); assertTrue(ConstraintHelper.getRightArgument(simpleConstraint3) instanceof QueryExpression); assertTrue(ConstraintHelper.getRightArgument(classConstraint1) instanceof QueryClass); assertEquals(Department.class, ((QueryClass) ConstraintHelper.getRightArgument(classConstraint1)).getType()); assertTrue(ConstraintHelper.getRightArgument(classConstraint2) instanceof Department); assertTrue(ConstraintHelper.getRightArgument(containsConstraint1) instanceof QueryClass); assertEquals(Department.class, ((QueryClass) ConstraintHelper.getRightArgument(containsConstraint1)).getType()); assertTrue(ConstraintHelper.getRightArgument(subqueryConstraint1) instanceof Query); assertTrue(ConstraintHelper.getRightArgument(bagConstraint1) instanceof Collection); assertNull(ConstraintHelper.getRightArgument(cs1)); }
alias += "id"; } else if (qn instanceof QueryField) { if (String.class.equals(((QueryField) qn).getType())) { alias = "lower(" + alias + ")"; alias += "id"; } else if (orderElement instanceof QueryField) { if (String.class.equals(((QueryField) orderElement).getType())) { alias = "lower(" + alias + ")";
QueryField qf = (QueryField) origPathToQueryNode.get(summaryPath); try { if ((qf == null) || (!subQ.getFrom().contains(qf.getFromElement()))) { qf = new QueryField(lastQc, fieldName); subQ.addFrom(lastQc); subQ.addToSelect(lastQc); qf = new QueryField(firstQc, fieldName); subQ.addFrom(firstQc); subQ.addToSelect(firstQc); q.addFrom(subQ); subQ.addToSelect(qf); qf = new QueryField(subQ, qf); Class<?> summaryType = qf.getType(); String fieldName = origQf.getFieldName(); String className = Util.getFriendlyName(((QueryClass) origQf.getFromElement()) .getType());
FromElement qc = ((QueryField) node).getFromElement(); if ((qc instanceof QueryClass) || (qc instanceof QueryClassBag)) { if (!seenQueryClasses.contains(qc)) { if ("id".equals(((QueryField) node).getFieldName())) { seenQueryClasses.add(qc);
} else if (qn instanceof QueryField) { QueryField qf = (QueryField) qn; return escapeReservedWord(q.getAliases().get(qf.getFromElement())) + "." + escapeReservedWord(qf.getFieldName()) + (qf.getSecondFieldName() == null ? "" : "." + escapeReservedWord(qf.getSecondFieldName())); } else if (qn instanceof QueryValue) { Object obj = ((QueryValue) qn).getValue();
seen.add(buffer.toString()); if ((!q.getSelect().contains(node)) && (!q.getSelect().contains(new QueryField((QueryClass) node, "id")))) { if (q.isDistinct()) { if ((!q.getSelect().contains(node)) && q.isDistinct() && (node instanceof QueryField)) { FromElement fe = ((QueryField) node).getFromElement(); if (q.getSelect().contains(fe)) {
QueryEvaluable bins = new QueryValue(SummaryConfig.getNumberOfBins()); Class<?> summaryType = qf.getType(); if (summaryType == Long.class || summaryType == Integer.class) { bins = new QueryExpression( bucketq.setDistinct(false); QueryFunction count = new QueryFunction(); QueryField val = new QueryField(vq, qf); QueryField maxval = new QueryField(statsq, max); QueryField minval = new QueryField(statsq, min); QueryField meanval = new QueryField(statsq, avg); QueryField devval = new QueryField(statsq, stddev); QueryExpression upperBound = new QueryExpression( new QueryCast(maxval, BigDecimal.class), QueryExpression.MULTIPLY, new QueryCast(new QueryValue(new Double(1.01)), BigDecimal.class)); QueryField noOfBuckets = new QueryField(statsq, bins); QueryField bmax = new QueryField(bucketq, maxval); QueryField bmin = new QueryField(bucketq, minval); QueryField bmean = new QueryField(bucketq, meanval); QueryField bdev = new QueryField(bucketq, devval); QueryField bbucket = new QueryField(bucketq, bucket); QueryFunction bucketTotal = new QueryFunction( new QueryField(bucketq, count), QueryFunction.SUM); QueryField buckets = new QueryField(bucketq, noOfBuckets); q.addFrom(bucketq);
/** * Returns true if the Constraint is a cross-reference between two QueryClasses. * A constraint is deemed to be a cross-reference if it compares fields of * two different QueryClasses, either directly or via QueryExpressions. * * @param constraint the contraint to test * @return true if the contraint is a cross-reference */ public static boolean isCrossReference(Constraint constraint) { if (constraint instanceof SimpleConstraint) { // if QueryField exposed part of a subquery QueryField.getFromElement() // returns a query, does not cause any problem. Set<FromElement> qcs = new HashSet<FromElement>(); for (QueryField qf : getQueryFields(((SimpleConstraint) constraint).getArg1())) { qcs.add(qf.getFromElement()); } for (QueryField qf : getQueryFields(((SimpleConstraint) constraint).getArg2())) { qcs.add(qf.getFromElement()); } if (qcs.size() > 1) { return true; } } return false; }
alias += "id"; } else if (qn instanceof QueryField) { if (String.class.equals(((QueryField) qn).getType())) { alias = "lower(" + alias + ")"; alias += "id"; } else if (orderElement instanceof QueryField) { if (String.class.equals(((QueryField) orderElement).getType())) { alias = "lower(" + alias + ")";
public void testMissingField() throws Exception { try { new QueryField(qc, "genes"); fail("An IllegalArgumentException should have been thrown"); } catch (IllegalArgumentException e) { } }
} else if (qn instanceof QueryField) { QueryField qf = (QueryField) qn; String origAlias = q.getAliases().get(qf.getFromElement()); qnNew = new QueryField((QueryClass) ret.getReverseAliases().get(origAlias), qf.getFieldName()); } else { throw new IllegalArgumentException("Method can only deal with QueryClass "
} else if (orig instanceof QueryField) { QueryField origF = (QueryField) orig; return new QueryField(fromElementMap.get(origF.getFromElement()), origF.getFieldName(), origF.getSecondFieldName(), origF.getType()); } else if (orig instanceof QueryObjectReference) { QueryObjectReference origR = (QueryObjectReference) orig;