private DataSet createDerivedDataSets(String userName, Integer targetDataSetId, List<Integer> sourceDataSetIds)
{
DataSet targetDataSet = dataService.findOne(DataSet.ENTITY_NAME, targetDataSetId, DataSet.class);
DataSet derivedDataSet = new DataSet();
derivedDataSet.setIdentifier(createDerivedDataSetIdentifier(userName, targetDataSet.getId().toString(),
sourceDataSetIds));
derivedDataSet.setName(createDerivedDataSetName(userName, targetDataSet.getName()));
derivedDataSet.setProtocolUsed(targetDataSet.getProtocolUsed());
dataService.add(DataSet.ENTITY_NAME, derivedDataSet);
dataService.getCrudRepository(DataSet.ENTITY_NAME).flush();
if (!dataService.hasRepository(derivedDataSet.getIdentifier()))
{
dataService.addRepository(new OmxRepository(dataService, searchService, derivedDataSet.getIdentifier(),
new DefaultEntityValidator(dataService, new EntityAttributesValidator())));
}
return derivedDataSet;
}