private Map<SetAlias, List<GeneratorWithPath>> groupGeneratorsByAlias( SkolemFunctionGenerator skolemFunction) { Map<SetAlias, List<GeneratorWithPath>> groups = new HashMap<SetAlias, List<GeneratorWithPath>>(); for (GeneratorWithPath subGenerator : skolemFunction.getSubGenerators()) { SetAlias generatorVariable = subGenerator.getTargetPath().getStartingVariable(); List<GeneratorWithPath> variableGroup = groups.get(generatorVariable); if (variableGroup == null) { variableGroup = new ArrayList<GeneratorWithPath>(); groups.put(generatorVariable, variableGroup); } variableGroup.add(subGenerator); } return groups; }
private ISkolemPart generateAppendsForSubGenerator( SkolemFunctionGenerator generator, MappingTask mappingTask) { ISkolemPart append = new AppendSkolemPart(mappingTask.getConfig().useSortInSkolems(), "(", ")", ", "); for (GeneratorWithPath subGeneratorWithPath : generator.getSubGenerators()) { VariablePathExpression subGeneratorPath = subGeneratorWithPath.getTargetPath(); IValueGenerator subGenerator = subGeneratorWithPath.getGenerator(); ISkolemPart appendForGenerator = new AppendSkolemPart(false, "", "", ": "); StringSkolemPart stringPart = new StringSkolemPart( SpicyEngineUtility.removeRootLabel(subGeneratorPath.getAbsolutePath())); SubGeneratorSkolemPart generatorPart = new SubGeneratorSkolemPart(subGenerator); appendForGenerator.addChild(stringPart); appendForGenerator.addChild(generatorPart); append.addChild(appendForGenerator); } return append; }