List of usage examples for com.fasterxml.jackson.dataformat.yaml YAMLFactory createGenerator
@Override public YAMLGenerator createGenerator(Writer out) throws IOException
From source file:pl.betoncraft.betonquest.editor.model.QuestPackage.java
public void printMainYAML(OutputStream out) throws IOException { YAMLFactory yf = new YAMLFactory(); YAMLMapper mapper = new YAMLMapper(); ObjectNode root = mapper.createObjectNode(); // save NPCs//from www .j ava 2s .c o m if (!npcBindings.isEmpty()) { ObjectNode npcs = mapper.createObjectNode(); for (NpcBinding binding : npcBindings) { npcs.put(binding.getId().get(), binding.getConversation().get().getId().get()); } root.set("npcs", npcs); } // save global variables if (!variables.isEmpty()) { ObjectNode variables = mapper.createObjectNode(); for (GlobalVariable var : this.variables) { variables.put(var.getId().get(), var.getInstruction().get()); } root.set("variables", variables); } // save static events if (!staticEvents.isEmpty()) { ObjectNode staticEvents = mapper.createObjectNode(); for (StaticEvent event : this.staticEvents) { staticEvents.put(event.getId().get(), event.getEvent().get().getId().get()); } root.set("static", staticEvents); } // save global locations if (!locations.isEmpty()) { StringBuilder builder = new StringBuilder(); for (GlobalLocation loc : locations) { builder.append(loc.toString() + ","); } root.put("global_locations", builder.toString().substring(0, builder.length() - 1)); } // save quest cancelers if (!cancelers.isEmpty()) { ObjectNode cancelers = mapper.createObjectNode(); for (QuestCanceler canceler : this.cancelers) { ObjectNode cancelerNode = mapper.createObjectNode(); addTranslatedNode(mapper, cancelerNode, "name", canceler.getName()); if (!canceler.getEvents().isEmpty()) { StringBuilder events = new StringBuilder(); for (IdWrapper<Event> event : canceler.getEvents()) { events.append(event.toString() + ','); } cancelerNode.put("events", events.toString().substring(0, events.length() - 1)); } if (!canceler.getConditions().isEmpty()) { StringBuilder conditions = new StringBuilder(); for (ConditionWrapper condition : canceler.getConditions()) { conditions.append(condition.toString() + ','); } cancelerNode.put("conditions", conditions.toString().substring(0, conditions.length() - 1)); } if (!canceler.getObjectives().isEmpty()) { StringBuilder objectives = new StringBuilder(); for (IdWrapper<Objective> objective : canceler.getObjectives()) { objectives.append(objective.toString() + ','); } cancelerNode.put("objectives", objectives.toString().substring(0, objectives.length() - 1)); } if (!canceler.getTags().isEmpty()) { StringBuilder tags = new StringBuilder(); for (IdWrapper<Tag> tag : canceler.getTags()) { tags.append(tag.toString() + ','); } cancelerNode.put("tags", tags.toString().substring(0, tags.length() - 1)); } if (!canceler.getPoints().isEmpty()) { StringBuilder points = new StringBuilder(); for (IdWrapper<PointCategory> point : canceler.getPoints()) { points.append(point.toString() + ','); } cancelerNode.put("points", points.toString().substring(0, points.length() - 1)); } if (!canceler.getJournal().isEmpty()) { StringBuilder journals = new StringBuilder(); for (IdWrapper<JournalEntry> journal : canceler.getJournal()) { journals.append(journal.toString() + ','); } cancelerNode.put("journal", journals.toString().substring(0, journals.length() - 1)); } if (canceler.getLocation() != null) { cancelerNode.put("loc", canceler.getLocation()); } cancelers.set(canceler.getId().get(), cancelerNode); } root.set("cancel", cancelers); } // save main page if (!mainPage.isEmpty()) { ObjectNode lines = mapper.createObjectNode(); for (MainPageLine line : mainPage) { ObjectNode node = mapper.createObjectNode(); addTranslatedNode(mapper, node, "text", line.getText()); node.put("priority", line.getPriority().get()); StringBuilder conditions = new StringBuilder(); for (ConditionWrapper condition : line.getConditions()) { conditions.append(condition.toString() + ','); } node.put("conditions", conditions.substring(0, conditions.length() - 1)); lines.set(line.getId().get(), node); } root.set("journal_main_page", lines); } yf.createGenerator(out).setCodec(mapper).writeObject(root); }