[SDC] rebase 1710 code
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / Component.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.model;
22
23 import java.io.Serializable;
24 import java.util.ArrayList;
25 import java.util.Collections;
26 import java.util.HashMap;
27 import java.util.List;
28 import java.util.Map;
29 import java.util.Objects;
30 import java.util.Optional;
31
32 import org.codehaus.jackson.annotate.JsonIgnore;
33 import org.openecomp.sdc.be.config.ConfigurationManager;
34 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
35 import org.openecomp.sdc.be.model.category.CategoryDefinition;
36 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
37
38 public abstract class Component implements Serializable {
39
40         /**
41          * 
42          */
43         private static final long serialVersionUID = -6373756459967949120L;
44
45         private ComponentMetadataDefinition componentMetadataDefinition;
46         private Map<String, ArtifactDefinition> artifacts;
47         private Map<String, ArtifactDefinition> deploymentArtifacts;
48         private Map<String, ArtifactDefinition> toscaArtifacts;
49
50         private List<CategoryDefinition> categories;
51
52         private List<ComponentInstance> componentInstances;
53
54         private List<RequirementCapabilityRelDef> componentInstancesRelations;
55
56         private Map<String, List<ComponentInstanceInput>> componentInstancesInputs;
57
58         private Map<String, List<ComponentInstanceProperty>> componentInstancesProperties;
59
60         private Map<String, List<ComponentInstanceProperty>> componentInstancesAttributes;
61
62         private Map<String, List<CapabilityDefinition>> capabilities;
63
64         private Map<String, List<RequirementDefinition>> requirements;
65
66         private List<InputDefinition> inputs;
67
68         private List<GroupDefinition> groups;
69         
70         private String derivedFromGenericType;
71         private String derivedFromGenericVersion;
72         private String toscaType;
73         protected List<AdditionalInformationDefinition> additionalInformation;
74         
75         public String getDerivedFromGenericVersion() {
76                 return derivedFromGenericVersion;
77         }
78
79         public void setDerivedFromGenericVersion(String derivedFromGenericVersion) {
80                 this.derivedFromGenericVersion = derivedFromGenericVersion;
81         }
82
83         public String getDerivedFromGenericType() {
84                 return derivedFromGenericType;
85         }
86
87         public void setDerivedFromGenericType(String derivedFromGenericType) {
88                 this.derivedFromGenericType = derivedFromGenericType;
89         }
90         
91         public Component(ComponentMetadataDefinition componentMetadataDefinition) {
92                 this.componentMetadataDefinition = componentMetadataDefinition;
93         }
94
95         @JsonIgnore
96         public ComponentMetadataDefinition getComponentMetadataDefinition() {
97                 return componentMetadataDefinition;
98         }
99
100         public Map<String, ArtifactDefinition> getArtifacts() {
101                 return artifacts;
102         }
103
104         public void setArtifacts(Map<String, ArtifactDefinition> artifacts) {
105                 this.artifacts = artifacts;
106         }
107
108         public Map<String, ArtifactDefinition> getToscaArtifacts() {
109                 return toscaArtifacts;
110         }
111
112         public void setToscaArtifacts(Map<String, ArtifactDefinition> toscaArtifacts) {
113                 this.toscaArtifacts = toscaArtifacts;
114         }
115
116         public String getUniqueId() {
117                 return componentMetadataDefinition.getMetadataDataDefinition().getUniqueId();
118         }
119
120         public void setUniqueId(String uniqueId) {
121                 componentMetadataDefinition.getMetadataDataDefinition().setUniqueId(uniqueId);
122         }
123
124         public void setName(String name) {
125                 componentMetadataDefinition.getMetadataDataDefinition().setName(name);
126         }
127
128         public void setVersion(String version) {
129                 componentMetadataDefinition.getMetadataDataDefinition().setVersion(version);
130         }
131
132         public void setHighestVersion(Boolean isHighestVersion) {
133                 componentMetadataDefinition.getMetadataDataDefinition().setHighestVersion(isHighestVersion);
134         }
135
136         public void setCreationDate(Long creationDate) {
137                 componentMetadataDefinition.getMetadataDataDefinition().setCreationDate(creationDate);
138         }
139
140         public void setLastUpdateDate(Long lastUpdateDate) {
141                 componentMetadataDefinition.getMetadataDataDefinition().setLastUpdateDate(lastUpdateDate);
142         }
143
144         public void setDescription(String description) {
145                 componentMetadataDefinition.getMetadataDataDefinition().setDescription(description);
146         }
147
148         public void setState(LifecycleStateEnum state) {
149                 componentMetadataDefinition.getMetadataDataDefinition().setState(state.name());
150         }
151
152         public void setTags(List<String> tags) {
153                 componentMetadataDefinition.getMetadataDataDefinition().setTags(tags);
154         }
155
156         public void setConformanceLevel(String conformanceLevel) {
157                 componentMetadataDefinition.getMetadataDataDefinition().setConformanceLevel(conformanceLevel);
158         }
159         
160         public void setIcon(String icon) {
161                 componentMetadataDefinition.getMetadataDataDefinition().setIcon(icon);
162         }
163
164         public void setContactId(String contactId) {
165                 componentMetadataDefinition.getMetadataDataDefinition().setContactId(contactId);
166         }
167
168         public String getCreatorUserId() {
169                 return this.componentMetadataDefinition.getMetadataDataDefinition().getCreatorUserId();
170         }
171
172         public void setCreatorUserId(String creatorUserId) {
173                 this.componentMetadataDefinition.getMetadataDataDefinition().setCreatorUserId(creatorUserId);
174         }
175
176         public String getCreatorFullName() {
177                 return this.componentMetadataDefinition.getMetadataDataDefinition().getCreatorFullName();
178         }
179
180         public void setCreatorFullName(String creatorFullName) {
181                 this.componentMetadataDefinition.getMetadataDataDefinition().setCreatorFullName(creatorFullName);
182         }
183
184         public String getLastUpdaterUserId() {
185                 return this.componentMetadataDefinition.getMetadataDataDefinition().getLastUpdaterUserId();
186         }
187
188         public void setLastUpdaterUserId(String lastUpdaterUserId) {
189                 this.componentMetadataDefinition.getMetadataDataDefinition().setLastUpdaterUserId(lastUpdaterUserId);
190         }
191
192         public String getLastUpdaterFullName() {
193                 return this.componentMetadataDefinition.getMetadataDataDefinition().getLastUpdaterFullName();
194         }
195
196         public void setLastUpdaterFullName(String lastUpdaterFullName) {
197                 this.componentMetadataDefinition.getMetadataDataDefinition().setLastUpdaterFullName(lastUpdaterFullName);
198         }
199
200         public String getName() {
201                 return componentMetadataDefinition.getMetadataDataDefinition().getName();
202         }
203
204         public String getVersion() {
205                 return componentMetadataDefinition.getMetadataDataDefinition().getVersion();
206         }
207
208         public Boolean isHighestVersion() {
209                 return componentMetadataDefinition.getMetadataDataDefinition().isHighestVersion();
210         }
211
212         public Long getCreationDate() {
213                 return componentMetadataDefinition.getMetadataDataDefinition().getCreationDate();
214         }
215
216         public Long getLastUpdateDate() {
217                 return componentMetadataDefinition.getMetadataDataDefinition().getLastUpdateDate();
218         }
219
220         public String getDescription() {
221                 return componentMetadataDefinition.getMetadataDataDefinition().getDescription();
222         }
223
224         public LifecycleStateEnum getLifecycleState() {
225                 if (componentMetadataDefinition.getMetadataDataDefinition().getState() != null) {
226                         return LifecycleStateEnum.valueOf(componentMetadataDefinition.getMetadataDataDefinition().getState());
227                 } else {
228                         return null;
229                 }
230         }
231
232         public List<String> getTags() {
233                 return componentMetadataDefinition.getMetadataDataDefinition().getTags();
234         }
235
236         public String getConformanceLevel() {
237                 return componentMetadataDefinition.getMetadataDataDefinition().getConformanceLevel();
238         }
239         
240         public String getIcon() {
241                 return componentMetadataDefinition.getMetadataDataDefinition().getIcon();
242         }
243
244         public String getContactId() {
245                 return componentMetadataDefinition.getMetadataDataDefinition().getContactId();
246         }
247
248         public List<InputDefinition> getInputs() {
249                 return inputs;
250         }
251
252         public void setInputs(List<InputDefinition> inputs) {
253                 this.inputs = inputs;
254         }
255
256         public void setLifecycleState(LifecycleStateEnum state) {
257                 if (state != null) {
258                         this.componentMetadataDefinition.getMetadataDataDefinition().setState(state.name());
259                 }
260         }
261
262         public String getUUID() {
263                 return componentMetadataDefinition.getMetadataDataDefinition().getUUID();
264         }
265
266         public void setUUID(String uUID) {
267                 componentMetadataDefinition.getMetadataDataDefinition().setUUID(uUID);
268         }
269
270         public void setSystemName(String systemName) {
271                 componentMetadataDefinition.getMetadataDataDefinition().setSystemName(systemName);
272         }
273
274         public String getSystemName() {
275                 return componentMetadataDefinition.getMetadataDataDefinition().getSystemName();
276         }
277
278         public void setAllVersions(Map<String, String> allVersions) {
279                 componentMetadataDefinition.getMetadataDataDefinition().setAllVersions(allVersions);
280         }
281
282         public Map<String, String> getAllVersions() {
283                 return componentMetadataDefinition.getMetadataDataDefinition().getAllVersions();
284         }
285
286         public Map<String, ArtifactDefinition> getDeploymentArtifacts() {
287                 return deploymentArtifacts;
288         }
289
290         public void setDeploymentArtifacts(Map<String, ArtifactDefinition> deploymentArtifacts) {
291                 this.deploymentArtifacts = deploymentArtifacts;
292         }
293
294         public Map<String, ArtifactDefinition> getAllArtifacts() {
295                 HashMap<String, ArtifactDefinition> allArtifacts = new HashMap<>();
296                 allArtifacts.putAll(Optional.ofNullable(this.deploymentArtifacts).orElse(Collections.emptyMap()));
297                 allArtifacts.putAll(Optional.ofNullable(this.artifacts).orElse(Collections.emptyMap()));
298                 return allArtifacts;
299         }
300
301         public List<CategoryDefinition> getCategories() {
302                 return categories;
303         }
304
305         public void setCategories(List<CategoryDefinition> categories) {
306                 this.categories = categories;
307         }
308
309         public String getNormalizedName() {
310                 return componentMetadataDefinition.getMetadataDataDefinition().getNormalizedName();
311         }
312
313         public void setNormalizedName(String normalizedName) {
314                 componentMetadataDefinition.getMetadataDataDefinition().setNormalizedName(normalizedName);
315         }
316
317         public ComponentTypeEnum getComponentType() {
318                 return this.componentMetadataDefinition.getMetadataDataDefinition().getComponentType();
319         }
320
321         public void setComponentType(ComponentTypeEnum componentType) {
322                 this.componentMetadataDefinition.getMetadataDataDefinition().setComponentType(componentType);
323         }
324
325         public Map<String, List<CapabilityDefinition>> getCapabilities() {
326                 return capabilities;
327         }
328
329         public void setCapabilities(Map<String, List<CapabilityDefinition>> capabilities) {
330                 this.capabilities = capabilities;
331         }
332
333         public Map<String, List<RequirementDefinition>> getRequirements() {
334                 return requirements;
335         }
336
337         public void setRequirements(Map<String, List<RequirementDefinition>> requirements) {
338                 this.requirements = requirements;
339         }
340
341         public List<ComponentInstance> getComponentInstances() {
342                 return componentInstances;
343         }
344
345         public void setComponentInstances(List<ComponentInstance> resourceInstances) {
346                 this.componentInstances = resourceInstances;
347         }
348
349         public List<RequirementCapabilityRelDef> getComponentInstancesRelations() {
350                 return componentInstancesRelations;
351         }
352
353         public void setComponentInstancesRelations(List<RequirementCapabilityRelDef> resourceInstancesRelations) {
354                 this.componentInstancesRelations = resourceInstancesRelations;
355         }
356
357         public Map<String, List<ComponentInstanceProperty>> getComponentInstancesProperties() {
358                 return componentInstancesProperties;
359         }
360
361         public void setComponentInstancesProperties(
362                         Map<String, List<ComponentInstanceProperty>> resourceInstancesProperties) {
363                 this.componentInstancesProperties = resourceInstancesProperties;
364         }
365
366         public Boolean getIsDeleted() {
367                 return componentMetadataDefinition.getMetadataDataDefinition().isDeleted();
368         }
369
370         public void setIsDeleted(Boolean isDeleted) {
371                 componentMetadataDefinition.getMetadataDataDefinition().setIsDeleted(isDeleted);
372         }
373
374         public String getProjectCode() {
375                 return componentMetadataDefinition.getMetadataDataDefinition().getProjectCode();
376         }
377
378         public void setProjectCode(String projectCode) {
379                 componentMetadataDefinition.getMetadataDataDefinition().setProjectCode(projectCode);
380         }
381
382         public String getCsarUUID() {
383                 return componentMetadataDefinition.getMetadataDataDefinition().getCsarUUID();
384         }
385
386         public void setCsarUUID(String csarUUID) {
387                 componentMetadataDefinition.getMetadataDataDefinition().setCsarUUID(csarUUID);
388         }
389
390         public String getCsarVersion() {
391                 return componentMetadataDefinition.getMetadataDataDefinition().getCsarVersion();
392         }
393
394         public void setCsarVersion(String csarVersion) {
395                 componentMetadataDefinition.getMetadataDataDefinition().setCsarVersion(csarVersion);
396         }
397
398         public String getImportedToscaChecksum() {
399                 return componentMetadataDefinition.getMetadataDataDefinition().getImportedToscaChecksum();
400         }
401
402         public void setImportedToscaChecksum(String importedToscaChecksum) {
403                 componentMetadataDefinition.getMetadataDataDefinition().setImportedToscaChecksum(importedToscaChecksum);
404         }
405
406         public String getInvariantUUID() {
407                 return componentMetadataDefinition.getMetadataDataDefinition().getInvariantUUID();
408         }
409
410         public void setInvariantUUID(String invariantUUID) {
411                 componentMetadataDefinition.getMetadataDataDefinition().setInvariantUUID(invariantUUID);
412         }
413
414         public List<GroupDefinition> getGroups() {
415                 return groups;
416         }
417
418         public void setGroups(List<GroupDefinition> groups) {
419                 this.groups = groups;
420         }
421
422         @Override
423         public int hashCode() {
424                 final int prime = 31;
425                 int result = 1;
426                 result = prime * result + ((artifacts == null) ? 0 : artifacts.hashCode());
427                 result = prime * result + ((categories == null) ? 0 : categories.hashCode());
428                 result = prime * result + ((componentMetadataDefinition == null) ? 0 : componentMetadataDefinition.hashCode());
429 //              result = prime * result + ((creatorUserId == null) ? 0 : creatorUserId.hashCode());
430 //              result = prime * result + ((creatorFullName == null) ? 0 : creatorFullName.hashCode());
431                 result = prime * result + ((deploymentArtifacts == null) ? 0 : deploymentArtifacts.hashCode());
432 //              result = prime * result + ((lastUpdaterUserId == null) ? 0 : lastUpdaterUserId.hashCode());
433 //              result = prime * result + ((lastUpdaterFullName == null) ? 0 : lastUpdaterFullName.hashCode());
434                 result = prime * result + ((capabilities == null) ? 0 : capabilities.hashCode());
435                 result = prime * result + ((requirements == null) ? 0 : requirements.hashCode());
436                 result = prime * result + ((componentInstances == null) ? 0 : componentInstances.hashCode());
437                 result = prime * result
438                                 + ((componentInstancesProperties == null) ? 0 : componentInstancesProperties.hashCode());
439                 result = prime * result
440                                 + ((componentInstancesAttributes == null) ? 0 : componentInstancesAttributes.hashCode());
441                 result = prime * result + ((componentInstancesInputs == null) ? 0 : componentInstancesInputs.hashCode());
442                 result = prime * result + ((componentInstancesRelations == null) ? 0 : componentInstancesRelations.hashCode());
443                 result = prime * result + ((groups == null) ? 0 : groups.hashCode());
444                 result = prime * result + ((derivedFromGenericType == null) ? 0 : derivedFromGenericType.hashCode());
445                 result = prime * result + ((derivedFromGenericVersion == null) ? 0 : derivedFromGenericVersion.hashCode());
446                 return result;
447         }
448
449         @Override
450         public boolean equals(Object obj) {
451                 if (this == obj)
452                         return true;
453                 if (obj == null)
454                         return false;
455                 if (getClass() != obj.getClass())
456                         return false;
457                 Component other = (Component) obj;
458                 if (artifacts == null) {
459                         if (other.artifacts != null)
460                                 return false;
461                 } else if (!artifacts.equals(other.artifacts))
462                         return false;
463                 if (categories == null) {
464                         if (other.categories != null)
465                                 return false;
466                 } else if (!categories.equals(other.categories))
467                         return false;
468                 if (componentMetadataDefinition == null) {
469                         if (other.componentMetadataDefinition != null)
470                                 return false;
471                 } else if (!componentMetadataDefinition.equals(other.componentMetadataDefinition))
472                         return false;
473 //              if (creatorUserId == null) {
474 //                      if (other.creatorUserId != null)
475 //                              return false;
476 //              } else if (!creatorUserId.equals(other.creatorUserId))
477 //                      return false;
478 //              if (creatorFullName == null) {
479 //                      if (other.creatorFullName != null)
480 //                              return false;
481 //              } else if (!creatorFullName.equals(other.creatorFullName))
482 //                      return false;
483                 if (deploymentArtifacts == null) {
484                         if (other.deploymentArtifacts != null)
485                                 return false;
486                 } else if (!deploymentArtifacts.equals(other.deploymentArtifacts))
487                         return false;
488 //              if (lastUpdaterUserId == null) {
489 //                      if (other.lastUpdaterUserId != null)
490 //                              return false;
491 //              } else if (!lastUpdaterUserId.equals(other.lastUpdaterUserId))
492 //                      return false;
493 //              if (lastUpdaterFullName == null) {
494 //                      if (other.lastUpdaterFullName != null)
495 //                              return false;
496 //              } else if (!lastUpdaterFullName.equals(other.lastUpdaterFullName))
497 //                      return false;
498                 if (componentInstances == null) {
499                         if (other.componentInstances != null)
500                                 return false;
501                 } else if (!componentInstances.equals(other.componentInstances))
502                         return false;
503                 if (componentInstancesProperties == null) {
504                         if (other.componentInstancesProperties != null)
505                                 return false;
506                 } else if (!componentInstancesProperties.equals(other.componentInstancesProperties))
507                         return false;
508
509                 if (!Objects.equals(componentInstancesAttributes, other.componentInstancesAttributes)) {
510                         return false;
511                 }
512                 if (!Objects.equals(componentInstancesInputs, other.componentInstancesInputs)) {
513                         return false;
514                 }
515                 if (componentInstancesRelations == null) {
516                         if (other.componentInstancesRelations != null)
517                                 return false;
518                 } else if (!componentInstancesRelations.equals(other.componentInstancesRelations))
519                         return false;
520                 if (requirements == null) {
521                         if (other.requirements != null)
522                                 return false;
523                 } else if (!requirements.equals(other.requirements))
524                         return false;
525                 if (capabilities == null) {
526                         if (other.capabilities != null)
527                                 return false;
528                 } else if (!capabilities.equals(other.capabilities))
529                         return false;
530                 if (groups == null) {
531                         if (other.groups != null)
532                                 return false;
533                 } else if (!groups.equals(other.groups))
534                         return false;
535                 if (derivedFromGenericType == null) {
536                         if (other.derivedFromGenericType != null)
537                                 return false;
538                 } else if (!derivedFromGenericType.equals(other.derivedFromGenericType))
539                         return false;
540                 if (derivedFromGenericVersion == null) {
541                         if (other.derivedFromGenericVersion != null)
542                                 return false;
543                 } else if (!derivedFromGenericVersion.equals(other.derivedFromGenericVersion))
544                         return false;
545                 return true;
546         }
547
548         public void addCategory(String category, String subCategory) {
549                 if (category != null || subCategory != null) {
550                         if (categories == null) {
551                                 categories = new ArrayList<>();
552                         }
553                         CategoryDefinition selectedCategory = null;
554                         for (CategoryDefinition categoryDef : categories) {
555                                 if (categoryDef.getName().equals(category)) {
556                                         selectedCategory = categoryDef;
557                                 }
558                         }
559                         if (selectedCategory == null) {
560                                 selectedCategory = new CategoryDefinition();
561                                 selectedCategory.setName(category);
562                                 categories.add(selectedCategory);
563                         }
564                         List<SubCategoryDefinition> subcategories = selectedCategory.getSubcategories();
565                         if (subcategories == null) {
566                                 subcategories = new ArrayList<>();
567                                 selectedCategory.setSubcategories(subcategories);
568                         }
569                         SubCategoryDefinition selectedSubcategory = null;
570                         for (SubCategoryDefinition subcategory : subcategories) {
571                                 if (subcategory.getName().equals(subCategory)) {
572                                         selectedSubcategory = subcategory;
573                                 }
574                         }
575                         if (selectedSubcategory == null) {
576                                 selectedSubcategory = new SubCategoryDefinition();
577                                 selectedSubcategory.setName(subCategory);
578                                 subcategories.add(selectedSubcategory);
579                         }
580                 }
581         }
582
583         public void addCategory(CategoryDefinition category) {
584                 addCategory(category, null);
585         }
586
587         public void addCategory(CategoryDefinition category, SubCategoryDefinition subCategory) {
588                 if (categories == null) {
589                         categories = new ArrayList<>();
590                 }
591                 boolean foundCat = false;
592                 for (CategoryDefinition cat : categories) {
593                         if (cat.getName().equals(category.getName())) {
594                                 foundCat = true;
595                                 if (subCategory != null) {
596                                         List<SubCategoryDefinition> subcategories = cat.getSubcategories();
597                                         if (subcategories == null) {
598                                                 subcategories = new ArrayList<>();
599                                                 cat.setSubcategories(subcategories);
600                                         }
601                                         for (SubCategoryDefinition subcat : subcategories) {
602                                                 boolean foundSub = false;
603                                                 if (subcat.getName().equals(subCategory.getName())) {
604                                                         foundSub = true;
605                                                 }
606                                                 if (foundSub == false) {
607                                                         subcategories.add(subCategory);
608                                                         break;
609                                                 }
610                                         }
611                                 }
612                         }
613                 }
614                 if (foundCat == false) {
615                         if (subCategory != null) {
616                                 category.addSubCategory(subCategory);
617                         }
618                         categories.add(category);
619                 }
620         }
621
622         public Map<String, List<ComponentInstanceProperty>> getComponentInstancesAttributes() {
623                 return componentInstancesAttributes;
624         }
625
626         public void setComponentInstancesAttributes(
627                         Map<String, List<ComponentInstanceProperty>> componentInstancesAttributes) {
628                 this.componentInstancesAttributes = componentInstancesAttributes;
629         }
630
631         public Map<String, List<ComponentInstanceInput>> getComponentInstancesInputs() {
632                 return componentInstancesInputs;
633         }
634
635         public void setComponentInstancesInputs(Map<String, List<ComponentInstanceInput>> componentInstancesInputs) {
636                 this.componentInstancesInputs = componentInstancesInputs;
637         }
638
639         public void setSpecificComponetTypeArtifacts(Map<String, ArtifactDefinition> specificComponentTypeArtifacts) {
640                 // Implement where needed
641         }
642         
643         public void setMetadataDefinition(ComponentMetadataDefinition metadataDefinition) {
644                 this.componentMetadataDefinition = metadataDefinition;
645         }
646         
647         public String fetchGenericTypeToscaNameFromConfig(){
648                 // Implement where needed
649                 return ConfigurationManager.getConfigurationManager().getConfiguration().getGenericAssetNodeTypes().get(this.assetType());
650         }
651         
652         public String assetType(){
653                 // Implement where needed
654                 return this.getComponentType().getValue();
655         }
656         
657         public boolean shouldGenerateInputs(){
658                 // Implement where needed
659                 return true;
660         }
661         
662         public boolean deriveFromGeneric(){
663                 // Implement where needed
664                 return true;
665         }
666         
667         public void setDerivedFromGenericInfo(Resource genericType){
668                 derivedFromGenericType = genericType.getToscaResourceName();
669                 derivedFromGenericVersion = genericType.getVersion();
670         }
671
672         public String getToscaType() {
673                 return toscaType;
674         }
675
676         public void setToscaType(String toscaType) {
677                 this.toscaType = toscaType;
678         }
679         public List<AdditionalInformationDefinition> getAdditionalInformation() {
680                 return additionalInformation;
681         }
682
683         public void setAdditionalInformation(List<AdditionalInformationDefinition> additionalInformation) {
684                 this.additionalInformation = additionalInformation;
685         }
686         
687 }