All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.takari.orchestra.plugins.yaml.YamlParser Maven / Gradle / Ivy

The newest version!
package io.takari.orchestra.plugins.yaml;

import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
import io.takari.bpm.model.ProcessDefinition;
import io.takari.orchestra.common.format.MultipleDefinitionParser;
import io.takari.orchestra.common.format.ParserException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Named;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.Map;

@Named
public class YamlParser implements MultipleDefinitionParser {

    private static final Logger log = LoggerFactory.getLogger(YamlParser.class);

    @Override
    public Collection parse(InputStream in) throws ParserException {
        YAMLMapper m = new YAMLMapper();

        Map data;
        try {
            data = m.readValue(in, Map.class);
        } catch (IOException e) {
            throw new ParserException("Error while parsing the data", e);
        }

        if (data == null || data.isEmpty()) {
            throw new ParserException("No definitions found");
        }

        log.debug("parse -> got: {}", data);
        return YamlConverter.convert(data);
    }

    @Override
    public String toString() {
        return "Orchestra YAML parser";
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy