Search in sources :

Example 1 with ParserImpl

use of org.yaml.snakeyaml.parser.ParserImpl in project alien4cloud by alien4cloud.

the class YamlParser method parseFile.

/**
 * Parse a yaml file into the given T instance.
 *
 * @param yamlStream Input stream that contains the yaml.
 * @param instance The instance to parse.
 * @return A parsing result that contains the parsing errors as well as the created instance.
 * @throws ParsingException In case there is a blocking issue while parsing the definition.
 */
public ParsingResult<T> parseFile(String filePath, String fileName, InputStream yamlStream, T instance) throws ParsingException {
    StreamReader sreader = new StreamReader(new UnicodeReader(yamlStream));
    Composer composer = new Composer(new ParserImpl(sreader), new Resolver());
    Node rootNode = null;
    try {
        rootNode = composer.getSingleNode();
        if (rootNode == null) {
            throw new ParsingException(fileName, new ParsingError(ErrorCode.SYNTAX_ERROR, "Empty file.", new Mark("root", 0, 0, 0, null, 0), "No yaml content found in file.", new Mark("root", 0, 0, 0, null, 0), filePath));
        }
    } catch (MarkedYAMLException exception) {
        throw new ParsingException(fileName, new ParsingError(ErrorCode.INVALID_YAML, exception));
    }
    try {
        return doParsing(fileName, rootNode, instance);
    } catch (ParsingException e) {
        e.setFileName(fileName);
        throw e;
    }
}
Also used : Composer(org.yaml.snakeyaml.composer.Composer) StreamReader(org.yaml.snakeyaml.reader.StreamReader) Resolver(org.yaml.snakeyaml.resolver.Resolver) Node(org.yaml.snakeyaml.nodes.Node) ParserImpl(org.yaml.snakeyaml.parser.ParserImpl) Mark(org.yaml.snakeyaml.error.Mark) UnicodeReader(org.yaml.snakeyaml.reader.UnicodeReader) MarkedYAMLException(org.yaml.snakeyaml.error.MarkedYAMLException)

Aggregations

Composer (org.yaml.snakeyaml.composer.Composer)1 Mark (org.yaml.snakeyaml.error.Mark)1 MarkedYAMLException (org.yaml.snakeyaml.error.MarkedYAMLException)1 Node (org.yaml.snakeyaml.nodes.Node)1 ParserImpl (org.yaml.snakeyaml.parser.ParserImpl)1 StreamReader (org.yaml.snakeyaml.reader.StreamReader)1 UnicodeReader (org.yaml.snakeyaml.reader.UnicodeReader)1 Resolver (org.yaml.snakeyaml.resolver.Resolver)1