protected Condition buildEntityKey(Condition obj) { List<Condition> crits = LanguageUtil.separateCriteriaByAnd(obj); if (!crits.isEmpty()) { boolean modified = false; for(Iterator<Condition> iter = crits.iterator(); iter.hasNext();) { Condition crit = iter.next(); if (crit instanceof Comparison) { Comparison left = (Comparison) crit; boolean leftAdded = this.entities.addEnityKey(left); if (leftAdded) { iter.remove(); modified = true; } } } if (this.entities.valid() && modified) { return LanguageUtil.combineCriteria(crits); } } return obj; }
protected Condition parseKeySegmentFromCondition(Condition obj) throws TranslatorException { List<Condition> crits = LanguageUtil.separateCriteriaByAnd(obj); if (!crits.isEmpty()) { boolean modified = false; for(Iterator<Condition> iter = crits.iterator(); iter.hasNext();) { Condition crit = iter.next(); if (crit instanceof Comparison) { Comparison left = (Comparison) crit; boolean leftAdded = parseKeySegmentFromComparison(left); if (leftAdded) { iter.remove(); modified = true; } } } if (modified) { return LanguageUtil.combineCriteria(crits); } } return obj; }
protected String processFilter(Condition condition) throws TranslatorException { List<Condition> crits = LanguageUtil.separateCriteriaByAnd(condition); if (!crits.isEmpty()) { for(Iterator<Condition> iter = crits.iterator(); iter.hasNext();) { Condition crit = iter.next(); ODataFilterVisitor visitor = new ODataFilterVisitor(this.executionFactory, this.metadata, this); visitor.appendFilter(crit); } } StringBuilder sb = new StringBuilder(); if (this.rootDocument.getFilter() != null) { sb.append(this.rootDocument.getFilter()); } for (ODataDocumentNode use:this.complexTables) { if (use.getFilter() != null) { if (sb.length() > 0) { sb.append(" and "); } sb.append(use.getFilter()); } } return sb.length() == 0?null:sb.toString(); }
tempTables = new ArrayList<NamedTable>(); Condition c = select.getWhere(); List<Condition> conditions = LanguageUtil.separateCriteriaByAnd(c); Map<String, List<Comparison>> tables = new HashMap<String, List<Comparison>>();