use of com.khartec.waltz.model.physical_specification.DataFormatKind in project waltz by khartec.
the class PhysicalFlowUploadService method validateCommand.
private PhysicalFlowValidateCommandResponse validateCommand(PhysicalFlowValidateCommand cmd) {
checkNotNull(cmd, "cmd cannot be null");
Map<String, String> errors = new HashMap<>();
// resolve entity refs - source, target, owner
EntityReference source = getEntityRefByString(cmd.source());
EntityReference target = getEntityRefByString(cmd.target());
EntityReference owner = getEntityRefByString(cmd.owner());
if (source == null) {
errors.put("source", String.format("%s not found", cmd.source()));
}
if (target == null) {
errors.put("target", String.format("%s not found", cmd.target()));
}
if (owner == null) {
errors.put("owner", String.format("%s not found", cmd.owner()));
}
// resolve enums - format, frequency, transport, criticality
DataFormatKind format = DataFormatKind.parse(cmd.format(), (s) -> null);
if (format == null) {
errors.put("format", String.format("%s is not a recognised value", cmd.format()));
}
FrequencyKind frequency = FrequencyKind.parse(cmd.frequency(), (s) -> null);
if (frequency == null) {
errors.put("frequency", String.format("%s is not a recognised value", cmd.frequency()));
}
TransportKind transport = TransportKind.parse(cmd.transport(), (s) -> null);
if (transport == null) {
errors.put("transport", String.format("%s is not a recognised value", cmd.transport()));
}
Criticality criticality = Criticality.parse(cmd.criticality(), (s) -> null);
if (criticality == null) {
errors.put("criticality", String.format("%s is not a recognised value", cmd.criticality()));
}
// check for nulls or duplicates in other fields
if (isEmpty(cmd.name())) {
errors.put("name", "name not provided");
}
Integer basisOffset = parseBasisOffset(cmd.basisOffset());
if (basisOffset == null) {
errors.put("basisOffset", String.format("%s is not a recognised value, expect this to be a number", cmd.basisOffset()));
}
ImmutablePhysicalFlowParsed parsedFlow = ImmutablePhysicalFlowParsed.builder().source(source).target(target).owner(owner).name(cmd.name()).format(format).specDescription(cmd.specDescription()).specExternalId(cmd.specExternalId()).frequency(frequency).transport(transport).criticality(criticality).description(cmd.description()).externalId(cmd.externalId()).basisOffset(basisOffset).build();
return ImmutablePhysicalFlowValidateCommandResponse.builder().parsedFlow(parsedFlow).errors(errors).originalCommand(cmd).outcome(errors.size() > 0 ? CommandOutcome.FAILURE : CommandOutcome.SUCCESS).build();
}
Aggregations