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