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