package alien4cloud.tosca.parser.postprocess;
import static alien4cloud.utils.AlienUtils.safe;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.alien4cloud.tosca.model.types.CapabilityType;
import org.alien4cloud.tosca.model.templates.Capability;
import alien4cloud.tosca.context.ToscaContext;
/**
* Ensure that the type exists and check capability properties.
*/
@Component
public class CapabilityPostProcessor implements IPostProcessor<Map.Entry<String, Capability>> {
@Resource
private ReferencePostProcessor referencePostProcessor;
@Resource
private PropertyValueChecker propertyValueChecker;
@Override
public void process(Map.Entry<String, Capability> instance) {
referencePostProcessor.process(new ReferencePostProcessor.TypeReference(instance.getValue(), instance.getValue().getType(), CapabilityType.class));
CapabilityType capabilityType = ToscaContext.get(CapabilityType.class, instance.getValue().getType());
if (capabilityType == null) {
return;
}
propertyValueChecker.checkProperties(capabilityType, instance.getValue().getProperties(), instance.getKey());
}
}