private void addAdditionalAttributes( CellGroup cellGroup, TupleOID originalOIDForConclusionValue, Tuple tuple, Dependency egd) { for (AttributeRef additionalAttribute : egd.getAdditionalAttributes()) { for (Cell additionalCell : tuple.getCells()) { AttributeRef unaliasedAttribute = ChaseUtility.unAlias(additionalCell.getAttributeRef()); if (!unaliasedAttribute.equals(additionalAttribute)) { continue; } TupleOID originalOIDForCell = new TupleOID(ChaseUtility.getOriginalOid(tuple, additionalCell.getAttributeRef())); if (!originalOIDForCell.equals(originalOIDForConclusionValue)) { continue; } CellGroupCell additionalCellGroupCell = new CellGroupCell( originalOIDForCell, unaliasedAttribute, additionalCell.getValue(), null, LunaticConstants.TYPE_ADDITIONAL, null); cellGroup.addAdditionalCell(additionalAttribute, additionalCellGroupCell); } } }
public static List<AttributeRef> extractRequestedAttributes(Dependency dependency) { List<AttributeRef> result = new ArrayList<AttributeRef>(); result.addAll(dependency.getQueriedAttributes()); for (AttributeRef attributeRef : dependency.getAdditionalAttributes()) { if (!result.contains(attributeRef)) { result.add(attributeRef); } } return result; }
public static List<AttributeRef> extractRequestedAttributesWithExistential( Dependency dependency) { List<AttributeRef> result = new ArrayList<AttributeRef>(); result.addAll(dependency.getQueriedAttributes()); for (FormulaVariable variable : dependency.getConclusion().getLocalVariables()) { if (variable.getConclusionRelationalOccurrences().size() == 1) { continue; } for (FormulaVariableOccurrence occurrence : variable.getConclusionRelationalOccurrences()) { if (logger.isTraceEnabled()) logger.trace("Inspecting occurrence: " + occurrence); AttributeRef attribute = occurrence.getAttributeRef(); AttributeRef unaliasedAttribute = ChaseUtility.unAlias(attribute); LunaticUtility.addIfNotContained(result, unaliasedAttribute); } } for (AttributeRef attributeRef : dependency.getAdditionalAttributes()) { if (!result.contains(attributeRef)) { result.add(attributeRef); } } return result; }