- final Entry<String, OperationDataDefinition> operationEntry,
- final ToscaLifecycleOperationDefinition toscaOperation) {
- final String operationArtifactPath;
- final ToscaInterfaceOperationImplementation toscaInterfaceOperationImplementation = new ToscaInterfaceOperationImplementation();
- toscaInterfaceOperationImplementation.setPrimary(new ToscaArtifactDefinition());
- final ToscaArtifactDefinition toscaArtifactDefinition = toscaInterfaceOperationImplementation.getPrimary();
- if (isArtifactPresent(operationEntry) && StringUtils.isNotEmpty(operationEntry.getValue().getImplementation().getArtifactName())) {
- operationArtifactPath = OperationArtifactUtil
- .createOperationArtifactPath(component, componentInstance, operationEntry.getValue(), isAssociatedComponent);
- toscaArtifactDefinition.setFile(operationArtifactPath);
- toscaArtifactDefinition.setArtifact_version(!operationEntry.getValue().getImplementation().getArtifactVersion()
- .equals(NumberUtils.INTEGER_ZERO.toString()) ? operationEntry.getValue().getImplementation().getArtifactVersion() : null);
- toscaArtifactDefinition.setType(operationEntry.getValue().getImplementation().getArtifactType());
- handleInterfaceOperationImplementationProperties(operationEntry, toscaArtifactDefinition);
- toscaOperation.setImplementation(
- toscaArtifactDefinition.getType() != null ? toscaInterfaceOperationImplementation : operationArtifactPath);
- } else {
- toscaArtifactDefinition.setFile(operationEntry.getValue().getImplementation().getArtifactName());
- toscaOperation.setImplementation(toscaInterfaceOperationImplementation);
+ final OperationDataDefinition operationDataDefinition,
+ final ToscaLifecycleOperationDefinition toscaOperation,
+ final Map<String, DataTypeDefinition> dataTypes) {
+ final ArtifactDataDefinition implementation = operationDataDefinition.getImplementation();
+ if (implementation == null) {
+ return;
+ }
+
+ if (isArtifactPresent(operationDataDefinition)) {
+ final String operationArtifactPath =
+ OperationArtifactUtil.createOperationArtifactPath(component, componentInstance, operationDataDefinition, isAssociatedComponent);
+ final ToscaInterfaceOperationImplementation toscaInterfaceOperationImplementation = new ToscaInterfaceOperationImplementation();
+ if (implementation.getTimeout() != null && implementation.getTimeout() > 0) {
+ toscaInterfaceOperationImplementation.setTimeout(implementation.getTimeout());
+ }
+ if (implementation.getArtifactType() != null) {
+ final ToscaArtifactDefinition toscaArtifactDefinition = new ToscaArtifactDefinition();
+ toscaArtifactDefinition.setFile(operationArtifactPath);
+ final String artifactVersion = implementation.getArtifactVersion();
+ toscaArtifactDefinition.setArtifact_version(!artifactVersion.equals(NumberUtils.INTEGER_ZERO.toString()) ? artifactVersion : null);
+ toscaArtifactDefinition.setType(implementation.getArtifactType());
+ final Map<String, ToscaPropertyAssignment> propertiesMap = handleImplementationProperties(operationDataDefinition, dataTypes);
+ if (MapUtils.isNotEmpty(propertiesMap)) {
+ toscaArtifactDefinition.setProperties(propertiesMap);
+ }
+ toscaInterfaceOperationImplementation.setPrimary(toscaArtifactDefinition);
+ toscaOperation.setImplementation(toscaInterfaceOperationImplementation);
+ } else {
+ if (toscaInterfaceOperationImplementation.getTimeout() != null) {
+ final ToscaArtifactDefinition toscaArtifactDefinition = new ToscaArtifactDefinition();
+ toscaArtifactDefinition.setFile(StringUtils.isBlank(operationArtifactPath) || "null".equals(operationArtifactPath) ? null : operationArtifactPath);
+ toscaInterfaceOperationImplementation.setPrimary(toscaArtifactDefinition);
+ toscaOperation.setImplementation(toscaInterfaceOperationImplementation);
+ } else {
+ toscaOperation.setImplementation(
+ StringUtils.isBlank(operationArtifactPath) || "null".equals(operationArtifactPath) ? null : operationArtifactPath);
+ }
+ }