@Override public Optional<ValidationStamp> getOrCreateValidationStamp(AutoValidationStampProperty value, Branch branch, String validationStampName) { if (value.isAutoCreate()) { Optional<PredefinedValidationStamp> oPredefinedValidationStamp = predefinedValidationStampService.findPredefinedValidationStampByName(validationStampName); if (oPredefinedValidationStamp.isPresent()) { // Creates the validation stamp return Optional.of( securityService.asAdmin(() -> structureService.newValidationStampFromPredefined( branch, oPredefinedValidationStamp.get() ) ) ); } else if (value.isAutoCreateIfNotPredefined()) { // Creates a validation stamp even without a predefined one return Optional.of( securityService.asAdmin(() -> structureService.newValidationStamp( ValidationStamp.of( branch, NameDescription.nd(validationStampName, "Validation automatically created on demand.") ) ) ) ); } } return Optional.empty(); }
@Override public void createTargetItem(ValidationStamp sourceValidationStamp) { ValidationStamp targetValidationStamp = structureService.newValidationStamp( ValidationStamp.of( targetBranch, NameDescription.nd( sourceValidationStamp.getName(), replacementFn.apply(sourceValidationStamp.getDescription()) ) ) ); copyValidationStampContent(sourceValidationStamp, targetValidationStamp); }
public ValidationStamp doCreateValidationStamp(Branch branch, NameDescription nameDescription, ValidationDataTypeConfig<?> config) throws Exception { return asUser().with(branch.getProject().id(), ValidationStampCreate.class).call(() -> structureService.newValidationStamp( ValidationStamp.of( branch, nameDescription ).withDataType(config) ) ); }