cf65f3e8879132305cb1d17fa6d6ade1efd58d19
[sdc.git] /
1 package org.openecomp.sdc.vendorsoftwareproduct.dao.type;
2
3 import com.datastax.driver.mapping.annotations.ClusteringColumn;
4 import com.datastax.driver.mapping.annotations.Column;
5 import com.datastax.driver.mapping.annotations.Frozen;
6 import com.datastax.driver.mapping.annotations.PartitionKey;
7 import com.datastax.driver.mapping.annotations.Table;
8 import org.openecomp.core.utilities.json.JsonUtil;
9 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
10 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
11 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
12 import org.openecomp.sdc.versioning.dao.types.Version;
13
14 @Table(keyspace = "dox", name = "vsp_component_compute")
15 public class ComputeEntity implements CompositionEntity {
16   public static final String ENTITY_TYPE = "Vendor Software Product Component Compute Flavor";
17
18   @PartitionKey
19   @Column(name = "vsp_id")
20   private String vspId;
21   @PartitionKey(value = 1)
22   @Frozen
23   private Version version;
24   @ClusteringColumn
25   @Column(name = "component_id")
26   private String componentId;
27   @ClusteringColumn(value = 1)
28   @Column(name = "compute_id")
29   private String id;
30   @Column(name = "composition_data")
31   private String compositionData;
32   @Column(name = "questionnaire_data")
33   private String questionnaireData;
34
35   /**
36    * Every entity class must have a default constructor according to
37    * <a href="http://docs.datastax.com/en/developer/java-driver/2.1/manual/object_mapper/creating/">
38    * Definition of mapped classes</a>.
39    */
40   public ComputeEntity() {
41     // Don't delete! Default constructor is required by DataStax driver
42   }
43
44   public ComputeEntity(String vspId, Version version, String componentId, String id) {
45     this.vspId = vspId;
46     this.version = version;
47     this.componentId = componentId;
48     this.id = id;
49   }
50
51   @Override
52   public String getEntityType() {
53     return ENTITY_TYPE;
54   }
55
56   @Override
57   public String getFirstClassCitizenId() {
58     return getVspId();
59   }
60
61   @Override
62   public String getId() {
63     return id;
64   }
65
66   @Override
67   public void setId(String id) {
68     this.id = id;
69   }
70
71   @Override
72   public Version getVersion() {
73     return version;
74   }
75
76   @Override
77   public void setVersion(Version version) {
78     this.version = version;
79   }
80
81   @Override
82   public CompositionEntityType getType() {
83     return CompositionEntityType.compute;
84   }
85
86   @Override
87   public CompositionEntityId getCompositionEntityId() {
88     return new CompositionEntityId(getId(),
89         new CompositionEntityId(getComponentId(), new CompositionEntityId(getVspId(), null)));
90   }
91
92   @Override
93   public String getCompositionData() {
94     return compositionData;
95   }
96
97   @Override
98   public void setCompositionData(String compositionData) {
99     this.compositionData = compositionData;
100   }
101
102   @Override
103   public String getQuestionnaireData() {
104     return questionnaireData;
105   }
106
107   @Override
108   public void setQuestionnaireData(String questionnaireData) {
109     this.questionnaireData = questionnaireData;
110   }
111
112   public String getVspId() {
113     return vspId;
114   }
115
116   public void setVspId(String vspId) {
117     this.vspId = vspId;
118   }
119
120   public String getComponentId() {
121     return componentId;
122   }
123
124   public void setComponentId(String componentId) {
125     this.componentId = componentId;
126   }
127
128   public ComputeData getComputeCompositionData() {
129     return compositionData == null ? null
130         : JsonUtil.json2Object(compositionData, ComputeData.class);
131   }
132
133   public void setComputeCompositionData(ComputeData computeData){
134     this.compositionData = computeData == null ? null : JsonUtil.object2Json(computeData);
135   }
136
137
138 }