public static boolean isVariableOnly(ImmutableCollection<? extends VariableOrGroundTerm> arguments) { for (VariableOrGroundTerm argument : arguments) { if (argument.isGround()) { return false; } } return true; } }
public static boolean isVariableOnly(ImmutableCollection<? extends VariableOrGroundTerm> arguments) { for (VariableOrGroundTerm argument : arguments) { if (argument.isGround()) { return false; } } return true; } }
private PairExtraction extractPairs(DataNode dataNode, IntermediateQuery query) throws InvalidQueryOptimizationProposalException { ImmutableList.Builder<VariableGroundTermPair> pairBuilder = ImmutableList.builder(); ImmutableList.Builder<VariableOrGroundTerm> newArgumentBuilder = ImmutableList.builder(); for (VariableOrGroundTerm argument : dataNode.getProjectionAtom().getArguments()) { if (argument.isGround()) { Variable newVariable = query.generateNewVariable(); pairBuilder.add(new VariableGroundTermPair(newVariable, (GroundTerm) argument)); newArgumentBuilder.add(newVariable); } /** * Variable */ else { newArgumentBuilder.add(argument); } } ImmutableList<VariableGroundTermPair> pairs = pairBuilder.build(); if (pairs.isEmpty()) { throw new InvalidQueryOptimizationProposalException("The data node " + dataNode + " does not have" + "ground terms"); } else { DataNode newDataNode = generateDataNode(dataNode, newArgumentBuilder.build()); return new PairExtraction(pairs, newDataNode); } }