2e8630f879712169cdcd99a3e24787c5e9fbb9b0
[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.Image;
12 import org.openecomp.sdc.versioning.dao.types.Version;
13
14 @Table(keyspace = "dox", name = "vsp_component_image")
15 public class ImageEntity implements CompositionEntity {
16
17   private static final String ENTITY_TYPE = "Vendor Software Product Component Image";
18
19   @PartitionKey
20   @Column(name = "vsp_id")
21   private String vspId;
22   @PartitionKey(value = 1)
23   @Frozen
24   private Version version;
25   @ClusteringColumn
26   @Column(name = "component_id")
27   private String componentId;
28   @ClusteringColumn(value = 1)
29   @Column(name = "image_id")
30   private String id;
31   @Column(name = "composition_data")
32   private String compositionData;
33   @Column(name = "questionnaire_data")
34   private String questionnaireData;
35
36   /**
37    * Every entity class must have a default constructor according to
38    * <a href="http://docs.datastax.com/en/developer/java-driver/2.1/manual/object_mapper/creating/">
39    * Definition of mapped classes</a>.
40    */
41   public ImageEntity() {
42     // Don't delete! Default constructor is required by DataStax driver
43   }
44
45   /**
46    * Instantiates a new Image entity.
47    *
48    * @param vspId       the vsp id
49    * @param version     the version
50    * @param id          the id
51    */
52   public ImageEntity(String vspId, Version version, String componentId, String id) {
53     this.vspId = vspId;
54     this.version = version;
55     this.componentId = componentId;
56     this.id = id;
57   }
58
59   public String getVspId() {
60     return vspId;
61   }
62
63   public void setVspId(String vspId) {
64     this.vspId = vspId;
65   }
66
67   public Version getVersion() {
68     return version;
69   }
70
71   public void setVersion(Version version) {
72     this.version = version;
73   }
74
75   public String getComponentId() {
76     return componentId;
77   }
78
79   public void setComponentId(String componentId) {
80     this.componentId = componentId;
81   }
82
83   @Override
84   public String getEntityType() {
85     return ENTITY_TYPE;
86   }
87
88   @Override
89   public String getFirstClassCitizenId() {
90     return getVspId();
91   }
92
93   public String getId() {
94     return id;
95   }
96
97   public void setId(String id) {
98     this.id = id;
99   }
100
101   public String getQuestionnaireData() {
102     return questionnaireData;
103   }
104
105   public void setQuestionnaireData(String questionnaireData) {
106     this.questionnaireData = questionnaireData;
107   }
108
109   @Override
110   public CompositionEntityType getType() {
111     return CompositionEntityType.image;
112   }
113
114   @Override
115   public CompositionEntityId getCompositionEntityId() {
116     return new CompositionEntityId(getId(),
117         new CompositionEntityId(getComponentId(), new CompositionEntityId(getVspId(), null)));
118   }
119
120   public String getCompositionData() {
121     return compositionData;
122   }
123
124   public void setCompositionData(String compositionData) {
125     this.compositionData = compositionData;
126   }
127
128   public Image getImageCompositionData() {
129     return compositionData == null ? null : JsonUtil.json2Object(compositionData, Image.class);
130   }
131
132   public void setImageCompositionData(Image image) {
133     this.compositionData = image == null ? null : JsonUtil.object2Json(image);
134   }
135
136   @Override
137   public int hashCode() {
138     int result = vspId != null ? vspId.hashCode() : 0;
139     result = 31 * result + (version != null ? version.hashCode() : 0);
140     result = 31 * result + (componentId != null ? componentId.hashCode() : 0);
141     result = 31 * result + (id != null ? id.hashCode() : 0);
142     result = 31 * result + (compositionData != null ? compositionData.hashCode() : 0);
143     result = 31 * result + (questionnaireData != null ? questionnaireData.hashCode() : 0);
144     return result;
145   }
146
147   @Override
148   public boolean equals(Object object) {
149     if (this == object) {
150       return true;
151     }
152     if (object == null || getClass() != object.getClass()) {
153       return false;
154     }
155
156     ImageEntity imageEntity = (ImageEntity) object;
157
158     if (vspId != null ? !vspId.equals(imageEntity.vspId) : imageEntity.vspId != null) {
159       return false;
160     }
161     if (version != null ? !version.equals(imageEntity.version) : imageEntity.version != null) {
162       return false;
163     }
164     if (componentId != null ? !componentId.equals(imageEntity.componentId)
165         : imageEntity.componentId != null) {
166       return false;
167     }
168     if (id != null ? !id.equals(imageEntity.id) : imageEntity.id != null) {
169       return false;
170     }
171     if (compositionData != null ? !compositionData.equals(imageEntity.compositionData)
172         : imageEntity.compositionData != null) {
173       return false;
174     }
175     return questionnaireData != null ? questionnaireData.equals(imageEntity.questionnaireData)
176         : imageEntity.questionnaireData == null;
177
178   }
179 }