List of usage examples for com.fasterxml.jackson.dataformat.yaml YAMLParser close
@Override public void close() throws IOException
From source file:pl.betoncraft.betonquest.editor.model.PackageSet.java
private static PackageSet parseStreams(String setName, HashMap<String, HashMap<String, InputStream>> streamMap) throws IOException { PackageSet set = new PackageSet(setName); for (Entry<String, HashMap<String, InputStream>> entry : streamMap.entrySet()) { String packName = entry.getKey(); HashMap<String, LinkedHashMap<String, String>> values = new LinkedHashMap<>(); for (Entry<String, InputStream> subEntry : entry.getValue().entrySet()) { String name = subEntry.getKey(); InputStream stream = subEntry.getValue(); YAMLParser parser = new YAMLFactory().createParser(stream); String currentPath = ""; String fieldName = ""; while (true) { JsonToken token = parser.nextToken(); if (token == null) break; switch (token) { case START_OBJECT: currentPath = currentPath + fieldName + "."; break; case FIELD_NAME: fieldName = parser.getText(); break; case END_OBJECT: currentPath = currentPath.substring(0, currentPath.substring(0, currentPath.length() - 1).lastIndexOf(".") + 1); break; case VALUE_STRING: case VALUE_NUMBER_INT: case VALUE_NUMBER_FLOAT: case VALUE_FALSE: case VALUE_TRUE: String key = (currentPath + fieldName).substring(1, currentPath.length() + fieldName.length()); LinkedHashMap<String, String> map = values.get(name); if (map == null) { map = new LinkedHashMap<>(); values.put(name, map); }/* w w w .j a v a 2 s . c o m*/ map.put(key, parser.getText()); default: // do nothing } } parser.close(); stream.close(); } QuestPackage pack = new QuestPackage(set, packName, values); set.packages.add(pack); } return set; }