private static void fillRequirementsMap(Map<String, Requirement> map, List<RequirementDefinition> elements, Map<String, Requirement> mapToMerge,
boolean adaptToType) {
if (elements == null) {
return;
}
for (RequirementDefinition requirement : elements) {
Requirement toAddRequirement = MapUtils.getObject(mapToMerge, requirement.getId());
CapabilityType requirementType = ToscaContext.get(CapabilityType.class, requirement.getType());
if (toAddRequirement == null || !Objects.equals(toAddRequirement.getType(), requirement.getType())) {
toAddRequirement = new Requirement();
toAddRequirement.setType(requirement.getType());
}
Map<String, AbstractPropertyValue> properties = Maps.newLinkedHashMap();
fillProperties(properties, requirementType != null ? requirementType.getProperties() : null, toAddRequirement.getProperties(), adaptToType);
toAddRequirement.setProperties(properties);
map.put(requirement.getId(), toAddRequirement);
}
}