7d22cdd13fd954cf8417e1a8d367568892bf796c
[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   public ImageEntity() {
38   }
39
40   /**
41    * Instantiates a new Image entity.
42    *
43    * @param vspId       the vsp id
44    * @param version     the version
45    * @param id          the id
46    */
47   public ImageEntity(String vspId, Version version, String componentId, String id) {
48     this.vspId = vspId;
49     this.version = version;
50     this.componentId = componentId;
51     this.id = id;
52   }
53
54   public String getVspId() {
55     return vspId;
56   }
57
58   public void setVspId(String vspId) {
59     this.vspId = vspId;
60   }
61
62   public Version getVersion() {
63     return version;
64   }
65
66   public void setVersion(Version version) {
67     this.version = version;
68   }
69
70   public String getComponentId() {
71     return componentId;
72   }
73
74   public void setComponentId(String componentId) {
75     this.componentId = componentId;
76   }
77
78   @Override
79   public String getEntityType() {
80     return ENTITY_TYPE;
81   }
82
83   @Override
84   public String getFirstClassCitizenId() {
85     return getVspId();
86   }
87
88   public String getId() {
89     return id;
90   }
91
92   public void setId(String id) {
93     this.id = id;
94   }
95
96   public String getQuestionnaireData() {
97     return questionnaireData;
98   }
99
100   public void setQuestionnaireData(String questionnaireData) {
101     this.questionnaireData = questionnaireData;
102   }
103
104   @Override
105   public CompositionEntityType getType() {
106     return CompositionEntityType.image;
107   }
108
109   @Override
110   public CompositionEntityId getCompositionEntityId() {
111     return new CompositionEntityId(getId(),
112         new CompositionEntityId(getComponentId(), new CompositionEntityId(getVspId(), null)));
113   }
114
115   public String getCompositionData() {
116     return compositionData;
117   }
118
119   public void setCompositionData(String compositionData) {
120     this.compositionData = compositionData;
121   }
122
123   public Image getImageCompositionData() {
124     return compositionData == null ? null : JsonUtil.json2Object(compositionData, Image.class);
125   }
126
127   public void setImageCompositionData(Image image) {
128     this.compositionData = image == null ? null : JsonUtil.object2Json(image);
129   }
130
131   @Override
132   public int hashCode() {
133     int result = vspId != null ? vspId.hashCode() : 0;
134     result = 31 * result + (version != null ? version.hashCode() : 0);
135     result = 31 * result + (componentId != null ? componentId.hashCode() : 0);
136     result = 31 * result + (id != null ? id.hashCode() : 0);
137     result = 31 * result + (compositionData != null ? compositionData.hashCode() : 0);
138     result = 31 * result + (questionnaireData != null ? questionnaireData.hashCode() : 0);
139     return result;
140   }
141
142   @Override
143   public boolean equals(Object object) {
144     if (this == object) {
145       return true;
146     }
147     if (object == null || getClass() != object.getClass()) {
148       return false;
149     }
150
151     ImageEntity imageEntity = (ImageEntity) object;
152
153     if (vspId != null ? !vspId.equals(imageEntity.vspId) : imageEntity.vspId != null) {
154       return false;
155     }
156     if (version != null ? !version.equals(imageEntity.version) : imageEntity.version != null) {
157       return false;
158     }
159     if (componentId != null ? !componentId.equals(imageEntity.componentId)
160         : imageEntity.componentId != null) {
161       return false;
162     }
163     if (id != null ? !id.equals(imageEntity.id) : imageEntity.id != null) {
164       return false;
165     }
166     if (compositionData != null ? !compositionData.equals(imageEntity.compositionData)
167         : imageEntity.compositionData != null) {
168       return false;
169     }
170     return questionnaireData != null ? questionnaireData.equals(imageEntity.questionnaireData)
171         : imageEntity.questionnaireData == null;
172
173   }
174 }