package alien4cloud.deployment.matching.services.nodes;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.springframework.stereotype.Component;
import org.yaml.snakeyaml.nodes.Node;
import alien4cloud.tosca.parser.INodeParser;
import alien4cloud.tosca.parser.ParsingContextExecution;
import alien4cloud.tosca.parser.ParsingException;
import alien4cloud.tosca.parser.YamlParser;
import alien4cloud.tosca.parser.mapping.generator.MappingGenerator;
/**
* Parse a matching configuration from a yaml format.
*/
@Component
public class MatchingConfigurationsParser extends YamlParser<MatchingConfigurations> {
private static final String MATCHING_CONFIGURATION_TYPE = "matching_configurations";
@Inject
private MappingGenerator mappingGenerator;
private Map<String, INodeParser> parsers;
@PostConstruct
public void initialize() throws ParsingException {
parsers = mappingGenerator.process("classpath:matching-configuration-dsl.yml");
}
@Override
protected INodeParser<MatchingConfigurations> getParser(Node rootNode, ParsingContextExecution context) throws ParsingException {
context.setRegistry(parsers);
return parsers.get(MATCHING_CONFIGURATION_TYPE);
}
}