private void indexOrigins(final List<FieldOrigin> fieldOriginsList, Set<List<String>> parents, Map<Origin, String> refs) { for (FieldOrigin fieldOrigin : fieldOriginsList) { List<Origin> originsList = listNotNull(fieldOrigin.getOriginsList()); // if size != 1 then the field is derived. if (originsList.size() == 1) { Origin origin = originsList.get(0); // if the field was derived we can not use it // or we would need to be able to invert the expression // it has to be straight unchanged if (!origin.getDerived()) { parents.add(origin.getTableList()); // TODO(Julien): if the same column is referred more than once we could recommend all combinations by making refs a multimap refs.put(origin, fieldOrigin.getName()); } } } }
private void validateFieldOrigin(FieldOrigin fieldOrigin, String name, List<String> table, boolean derived, String col) { assertEquals(name, fieldOrigin.getName()); Origin oi = fieldOrigin.getOriginsList().iterator().next(); assertEquals(col, oi.getColumnName()); assertEquals(derived, oi.getDerived()); assertEquals(table, oi.getTableList()); }