@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);
		if(!ComposedJobUtil.isComposedJobDefinition(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);
	}
Used in exception messages as well as indication to the parser.
spring-xd-dirt/src/main/java/org/springframework/xd/dirt/stream/AbstractDeployer.java