excludedCollectorReplacementMap = getExcludedCollectors(inputRootNodes);
Set<CompositionNode> rootNodesToAnalyze = new HashSet<CompositionNode>(inputRootNodes);
rootNodesToAnalyze.addAll(excludedCollectorReplacementMap.values());
// Calculate the target for the CompositionNode graph.
Collector rootNodeTarget = getGraphTarget(rootNodesToAnalyze, excludedCollectorReplacementMap);
// Ensure the target is a member of the root nodes set.
rootNodesToAnalyze.add(rootNodeTarget);
// Create a dummy collector for which the body will be the check graph expression. Set this as the graph target.
CompositionNode checkGraphConnectedNode = new CompositionNode.Value() {
public String getStringValue() {
return "0.0";
}
public SourceModel.Expr getSourceModel() {
return SourceModel.Expr.Literal.Double.make(0.0);
}
public int getNArguments() {
return 0;
}
public CompositionArgument getNodeArgument(int i) {
return null;
}
};
Collector graphTarget = new SyntheticCollector("dummyCollector", Collections.<CompositionArgument>emptyList(), checkGraphConnectedNode);
rootNodesToAnalyze.add(graphTarget);
// The set of all collector names.
Set<String> collectorNames = new HashSet<String>();