protected AtomClassification(List<Function> atoms) throws DatalogProgram2QueryConverterImpl.InvalidDatalogProgramException { dataAndCompositeAtoms = DatalogTools.filterDataAndCompositeAtoms(atoms); List<Function> otherAtoms = DatalogTools.filterNonDataAndCompositeAtoms(atoms); booleanAtoms = DatalogTools.filterBooleanAtoms(otherAtoms); if (dataAndCompositeAtoms.isEmpty()) throw new DatalogProgram2QueryConverterImpl.InvalidDatalogProgramException("No data or composite atom in " + atoms); optionalGroupAtom = extractOptionalGroupAtom(otherAtoms); /* * May throw a NotSupportedConversionException */ checkNonDataOrCompositeAtomSupport(otherAtoms, booleanAtoms, optionalGroupAtom); }
protected AtomClassification(List<Function> atoms, DatalogTools datalogTools) throws DatalogProgram2QueryConverterImpl.InvalidDatalogProgramException { dataAndCompositeAtoms = datalogTools.filterDataAndCompositeAtoms(atoms); List<Function> otherAtoms = datalogTools.filterNonDataAndCompositeAtoms(atoms); booleanAtoms = datalogTools.filterBooleanAtoms(otherAtoms); if (dataAndCompositeAtoms.isEmpty()) throw new DatalogProgram2QueryConverterImpl.InvalidDatalogProgramException("No data or composite atom in " + atoms); /* * May throw a NotSupportedConversionException */ checkNonDataOrCompositeAtomSupport(otherAtoms, booleanAtoms); }