public String debug() { String ret = this.getClass().getSimpleName() + ": {\n"; for (CatalogPair pair : this) { ret += StringUtil.SPACER + pair.toString() + "\n"; } // FOR ret += "}"; return (ret); }
/** * @param search_key * @return */ public Collection<CatalogPair> findAllForParent(CatalogType search_key) { List<CatalogPair> found = new ArrayList<CatalogPair>(); for (CatalogPair entry : this) { if (entry.getFirst().getParent().equals(search_key) || entry.getSecond().getParent().equals(search_key)) { found.add(entry); } } // FOR return (found); }
/** * @param search_keys * @return */ public Collection<CatalogPair> findAll(CatalogType... search_keys) { List<CatalogPair> found = new ArrayList<CatalogPair>(); for (CatalogPair entry : this) { for (CatalogType key : search_keys) { if (entry.contains(key)) { found.add(entry); } } // FOR } // FOR return (found); }
@SuppressWarnings("unchecked") public <T extends CatalogType> Histogram<T> buildHistogramForType(Class<T> search_key) { Histogram<T> h = new ObjectHistogram<T>(); for (CatalogPair e : this) { if (ClassUtil.getSuperClasses(e.getFirst().getClass()).contains(search_key)) { h.put((T) e.getFirst()); } if (ClassUtil.getSuperClasses(e.getSecond().getClass()).contains(search_key)) { h.put((T) e.getSecond()); } } // FOR return (h); }
@SuppressWarnings("unchecked") public <T extends CatalogType> Collection<T> findAllForType(Class<T> search_key) { List<T> found = new ArrayList<T>(); for (CatalogPair e : this) { if (ClassUtil.getSuperClasses(e.getFirst().getClass()).contains(search_key)) { found.add((T) e.getFirst()); } if (ClassUtil.getSuperClasses(e.getSecond().getClass()).contains(search_key)) { found.add((T) e.getSecond()); } } // FOR return (found); }
/** * @param match_class * @param search_key * @return */ public PredicatePairs createPredicatePairsForParent( Class<? extends CatalogType> match_class, CatalogType parent_search_key) { PredicatePairs ret = new PredicatePairs(this.catalog_stmts); // We're looking for Pairs where one of the elements matches the search_key, // and the other element is of the same type of match_class for (CatalogPair e : this) { if (e.getFirst().getClass().equals(match_class) && e.getSecond().getParent().equals(parent_search_key)) { ret.add( CatalogPair.factory( e.getSecond(), e.getFirst(), e.getComparisonExp(), e.getQueryTypes())); } else if (e.getSecond().getClass().equals(match_class) && e.getFirst().getParent().equals(parent_search_key)) { ret.add(e); } } // FOR return (ret); }
/** * @param element0 * @param element1 * @param comparison_exp * @param catalog_stmts * @return */ public boolean add( CatalogType element0, CatalogType element1, ExpressionType comparison_exp, Collection<Statement> catalog_stmts) { Set<QueryType> query_types = new HashSet<QueryType>(); for (Statement catalog_stmt : catalog_stmts) { query_types.add(QueryType.get(catalog_stmt.getQuerytype())); } // FOR boolean ret = this.add(CatalogPair.factory(element0, element1, comparison_exp, query_types)); if (ret) this.catalog_stmts.addAll(catalog_stmts); return (ret); }