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

vagrant.impl.cli.parser.CvsParser Maven / Gradle / Ivy

package vagrant.impl.cli.parser;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class CvsParser implements CliParser>>{

    @Override
    public Collection> parse(String out) {
        String[] lines = out.split("\r?\n");
        String prevName = null;
        Set seenKeys = new HashSet();
        Map map = null;
        Collection> ret = new ArrayList>();
        for (String line : lines) {
            String[] tokens = line.split(",", 4);
            String name = tokens[1];
            String key = tokens[2];
            String value = tokens[3];
            if (prevName == null || !prevName.equals(name) || seenKeys.contains(key)) {
                if (map != null) {
                    ret.add(map);
                }
                map = new HashMap();
                if (!name.isEmpty()) {
                   map.put("machine", name);
                }
                seenKeys.clear();
            }
            map.put(key, value.replace("%!(VAGRANT_COMMA)", ","));
            prevName = name;
            seenKeys.add(key);
        }
        if (map != null) {
            ret.add(map);
        }
        return ret;
    }
    
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy