@Override public D save(D definition) { Assert.notNull(definition, "Definition may not be null"); if (repository.findOne(definition.getName()) != null) { throwDefinitionAlreadyExistsException(definition); } streamParser.parse(definition.getName(), definition.getDefinition()); return repository.save(definition); }
@Override public D save(D definition) { Assert.notNull(definition, "Definition may not be null"); String name = definition.getName(); String def = definition.getDefinition(); validateBeforeSave(name, def); List<ModuleDescriptor> moduleDescriptors = parser.parse(name, def, definitionKind); // todo: the result of parse() should already have correct (polymorphic) definitions List<ModuleDefinition> moduleDefinitions = createModuleDefinitions(moduleDescriptors); if (!moduleDefinitions.isEmpty()) { definition.setModuleDefinitions(moduleDefinitions); } D savedDefinition = repository.save(definition); return afterSave(savedDefinition); }