public void delete(Integer experimentId) { Experiment experiment = getExperiment(experimentId); clearSharedList(experiment); removeExperimentFromCopiedTo(experiment); for (Experimentable e : experiment.getExperimentables()) { log.info("Deleting experimentable: " + e.getId()); if (e instanceof DataSet) { DataSet dataSet = (DataSet) e; dataSetService.delete(dataSet); } if (e instanceof ModelOutput) { ModelOutput mo = (ModelOutput) e; modelOutputService.deleteModelOutput(mo); } if (e instanceof Model) { Model model = (Model) e; modelService.delete(model); } } experiment = getExperiment(experimentId); for (Experimentable e : experiment.getExperimentables()) { log.info("NOT DELETED: " + e.getId()); } remove(experiment); }