public ScheduleState generate(List<WorkItem> expandworkSets) {
Map<String, SpoutSpec> topoSpoutSpecsMap = generateSpoutMonitorMetadata();
Map<String, RouterSpec> groupSpecsMap = generateGroupbyMonitorMetadata();
Map<String, AlertBoltSpec> alertSpecsMap = generateAlertMonitorMetadata();
Map<String, PublishSpec> publishSpecsMap = generatePublishMetadata();
String uniqueVersion = generateVersion();
ScheduleState status = new ScheduleState(uniqueVersion,
topoSpoutSpecsMap,
groupSpecsMap,
alertSpecsMap,
publishSpecsMap,
context.getPolicyAssignments().values(),
context.getMonitoredStreams().values(),
context.getPolicies().values(),
context.getStreamSchemas().values());
return status;
}