private void processAnchor(String indicator) throws IOException { NodeEvent ev = (NodeEvent) event; if (ev.getAnchor() == null) { preparedAnchor = null; return; } if (preparedAnchor == null) { preparedAnchor = prepareAnchor(ev.getAnchor()); } writeIndicator(indicator + preparedAnchor, true, false, false); preparedAnchor = null; }
@Override protected String getArguments() { return super.getArguments() + ", tag=" + tag + ", implicit=" + implicit; }
private void addStructureAnchor(NodeEvent event) throws SAXException { Anchor anchor = new Anchor(event.getAnchor(), false); if (activeAnchorMap.values().contains(anchor)) { throw new SAXParseException( "The anchor '" + anchor.getName() + "' is declared within the data structure of an anchor with the same name.'", null, null, event.getStartMark().getLine(), event.getStartMark().getColumn()); } anchorMap.put(anchor.getName(), anchor); activeAnchorMap.put(Integer.valueOf(level), anchor); }
private NodeTuple asScalarMappingTuple(final Parser parser, final Resolver resolver) throws ParserException { NodeEvent event = nextNodeEvent(parser); if (event.is(Event.ID.Scalar)) { final ScalarNode keyNode = composeScalarNode(resolver, (ScalarEvent)event); event = nextNodeEvent(parser); if (event.is(Event.ID.Scalar)) { final ScalarNode valueNode = composeScalarNode(resolver, (ScalarEvent)event); final String key = asStringScalar(keyNode); if (key.startsWith(META_KEY_PREFIX)) { return new NodeTuple(keyNode, valueNode); } } } return null; }
private void addStructureAnchor(NodeEvent event) throws SAXException { Anchor anchor = new Anchor(event.getAnchor(), false); if (activeAnchorMap.values().contains(anchor)) { throw new SAXParseException( "The anchor '" + anchor.getName() + "' is declared within the data structure of an anchor with the same name.'", null, null, event.getStartMark().getLine(), event.getStartMark().getColumn()); } anchorMap.put(anchor.getName(), anchor); activeAnchorMap.put(Integer.valueOf(level), anchor); }
private List<NodeTuple> asScalarTuples(final Parser parser, final Resolver resolver) throws ParserException { final List<NodeTuple> tuples = new ArrayList<>(); NodeEvent event = nextNodeEvent(parser); if (isExplicitSequencing()) { if (event.is(Event.ID.SequenceStart)) { // skip: next should be mappingStart event = nextNodeEvent(parser); } } if (event.is(Event.ID.MappingStart)) { while (true) { final NodeTuple tuple = asScalarMappingTuple(parser, resolver); if (tuple != null) { tuples.add(tuple); if (parser.checkEvent(Event.ID.MappingEnd)) { break; } else { continue; } } break; } } return tuples; }
private void expectAlias() throws IOException { if (((NodeEvent) event).getAnchor() == null) { throw new EmitterException("anchor is not specified for alias"); } processAnchor("*"); state = states.pop(); }
private void addStructureAnchor(NodeEvent event) throws SAXException { Anchor anchor = new Anchor(event.getAnchor(), false); if (activeAnchorMap.values().contains(anchor)) { throw new SAXParseException( "The anchor '" + anchor.getName() + "' is declared within the data structure of an anchor with the same name.'", null, null, event.getStartMark().getLine(), event.getStartMark().getColumn()); } anchorMap.put(anchor.getName(), anchor); activeAnchorMap.put(Integer.valueOf(level), anchor); }
@Override protected String getArguments() { return super.getArguments() + ", tag=" + tag + ", " + implicit + ", value=" + value; }
NodeEvent event = nextNodeEvent(parser); if (isExplicitSequencing()) { if (event.is(Event.ID.SequenceStart)) { if (event.is(Event.ID.MappingStart)) { event = nextNodeEvent(parser); if (event.is(Event.ID.Scalar)) { final ScalarNode definitionKey = composeScalarNode(resolver, (ScalarEvent)event); final List<NodeTuple> tuples = asScalarTuples(parser, resolver);
private boolean checkSimpleKey() { int length = 0; if (event instanceof NodeEvent && ((NodeEvent) event).getAnchor() != null) { if (preparedAnchor == null) { preparedAnchor = prepareAnchor(((NodeEvent) event).getAnchor()); } length += preparedAnchor.length(); } String tag = null; if (event instanceof ScalarEvent) { tag = ((ScalarEvent) event).getTag(); } else if (event instanceof CollectionStartEvent) { tag = ((CollectionStartEvent) event).getTag(); } if (tag != null) { if (preparedTag == null) { preparedTag = prepareTag(tag); } length += preparedTag.length(); } if (event instanceof ScalarEvent) { if (analysis == null) { analysis = analyzeScalar(((ScalarEvent) event).getValue()); } length += analysis.scalar.length(); } return length < 128 && (event instanceof AliasEvent || (event instanceof ScalarEvent && !analysis.empty && !analysis.multiline) || checkEmptySequence() || checkEmptyMapping()); }
private void addStructureAnchor(NodeEvent event) throws SAXException { Anchor anchor = new Anchor(event.getAnchor(), false); if(activeAnchorMap.values().contains(anchor)) { throw new SAXParseException( "The anchor '" + anchor.getName() + "' is declared within the data structure of an anchor with the same name.'", null, null, event.getStartMark().getLine(), event.getStartMark().getColumn()); } anchorMap.put(anchor.getName(), anchor); activeAnchorMap.put(Integer.valueOf(level), anchor); }
@Override protected String getArguments() { return super.getArguments() + ", tag=" + tag + ", implicit=" + implicit; } }
private Node composeNode(Node parent) { if (parent != null) recursiveNodes.add(parent); final Node node; if (parser.checkEvent(Event.ID.Alias)) { AliasEvent event = (AliasEvent) parser.getEvent(); String anchor = event.getAnchor(); if (!anchors.containsKey(anchor)) { throw new ComposerException(null, null, "found undefined alias " + anchor, event.getStartMark()); } node = anchors.get(anchor); if (recursiveNodes.remove(node)) { node.setTwoStepsConstruction(true); } } else { NodeEvent event = (NodeEvent) parser.peekEvent(); String anchor = event.getAnchor(); // the check for duplicate anchors has been removed (issue 174) if (parser.checkEvent(Event.ID.Scalar)) { node = composeScalarNode(anchor); } else if (parser.checkEvent(Event.ID.SequenceStart)) { node = composeSequenceNode(anchor); } else { node = composeMappingNode(anchor); } } recursiveNodes.remove(parent); return node; }
private void addStructureAnchor(NodeEvent event) throws SAXException { Anchor anchor = new Anchor(event.getAnchor(), false); if (activeAnchorMap.values().contains(anchor)) { throw new SAXParseException( "The anchor '" + anchor.getName() + "' is declared within the data structure of an anchor with the same name.'", null, null, event.getStartMark().getLine(), event.getStartMark().getColumn()); } anchorMap.put(anchor.getName(), anchor); activeAnchorMap.put(Integer.valueOf(level), anchor); }
@Override protected String getArguments() { return super.getArguments() + ", tag=" + tag + ", implicit=" + implicit; } }
_currentAnchor = ((NodeEvent)evt).getAnchor(); _parsingContext = _parsingContext.createChildArrayContext(m.getLine(), m.getColumn()); return (_currToken = JsonToken.START_ARRAY);
private NodeEvent nextNodeEvent(final Parser parser) throws ParserException { if (parser.checkEvent(Event.ID.Alias)) { final AliasEvent event = (AliasEvent) parser.getEvent(); final String anchor = event.getAnchor(); throw new ParserException("Encounter node alias '" + anchor + "' which is not supported when parsing a document head only, " + event.getStartMark().toString()); } else { final NodeEvent event = (NodeEvent) parser.getEvent(); final String anchor = event.getAnchor(); if (anchor != null) { throw new ParserException("Encountered node anchor '" + anchor + "' which is not supported when parsing a document head only, " + event.getStartMark().toString()); } return event; } }
@Override protected String getArguments() { return super.getArguments() + ", tag=" + tag + ", " + implicit + ", value=" + value; }
_currentAnchor = ((NodeEvent)evt).getAnchor(); _parsingContext = _parsingContext.createChildArrayContext(m.getLine(), m.getColumn()); return (_currToken = JsonToken.START_ARRAY);