1 package org.openecomp.sdc.be.components.utils;
3 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
4 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
5 import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
7 import java.util.ArrayList;
9 public abstract class PropertyDataDefinitionAbstractBuilder<B extends PropertyDataDefinition, T extends PropertyDataDefinitionAbstractBuilder<B, T>> {
13 protected abstract PropertyDataDefinitionAbstractBuilder<B, T> self();
15 abstract B propertyDefinition();
17 PropertyDataDefinitionAbstractBuilder() {
18 propertyDefinition = propertyDefinition();
21 public PropertyDataDefinitionAbstractBuilder<B, T> setUniqueId(String id) {
22 this.propertyDefinition.setUniqueId(id);
26 public PropertyDataDefinitionAbstractBuilder<B, T> setName(String name) {
27 this.propertyDefinition.setName(name);
31 public PropertyDataDefinitionAbstractBuilder<B, T> setValue(String value) {
32 this.propertyDefinition.setValue(value);
36 public PropertyDataDefinitionAbstractBuilder<B, T> setDefaultValue(String value) {
37 this.propertyDefinition.setDefaultValue(value);
41 public PropertyDataDefinitionAbstractBuilder<B, T> setType(String type) {
42 this.propertyDefinition.setType(type);
46 public PropertyDataDefinitionAbstractBuilder<B, T> setOwnerId(String ownerId) {
47 this.propertyDefinition.setOwnerId(ownerId);
51 public PropertyDataDefinitionAbstractBuilder<B, T> setSchemaType(String type) {
52 if (propertyDefinition.getSchema() == null) {
53 propertyDefinition.setSchema(new SchemaDefinition());
55 if (propertyDefinition.getSchema().getProperty() == null) {
56 propertyDefinition.getSchema().setProperty(new PropertyDataDefinition());
58 propertyDefinition.getSchema().getProperty().setType(type);
62 public PropertyDataDefinitionAbstractBuilder<B, T> addGetInputValue(String inputName) {
63 GetInputValueDataDefinition getInputValueDataDefinition = new GetInputValueDataDefinition();
64 getInputValueDataDefinition.setInputName(inputName);
65 getInputValueDataDefinition.setInputId(inputName);
66 if (propertyDefinition.getGetInputValues() == null) {
67 propertyDefinition.setGetInputValues(new ArrayList<>());
69 propertyDefinition.getGetInputValues().add(getInputValueDataDefinition);
73 public PropertyDataDefinitionAbstractBuilder<B, T> setIsRequired(boolean required) {
74 this.propertyDefinition.setRequired(required);
78 public PropertyDataDefinitionAbstractBuilder<B, T> setDescription(String description) {
79 this.propertyDefinition.setDescription(description);
83 public PropertyDataDefinitionAbstractBuilder<B, T> setIsPassword(boolean isPassword) {
84 this.propertyDefinition.setRequired(isPassword);
88 public PropertyDataDefinitionAbstractBuilder<B, T> setStatus(String status) {
89 this.propertyDefinition.setStatus(status);
93 public abstract B build();