org.yaml.snakeyaml.events.MappingEndEvent Java Examples

The following examples show how to use org.yaml.snakeyaml.events.MappingEndEvent. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Emitter.java    From orion.server with Eclipse Public License 1.0 6 votes vote down vote up
public void expect() throws IOException {
    if (event instanceof MappingEndEvent) {
        indent = indents.pop();
        flowLevel--;
        writeIndicator("}", false, false, false);
        state = states.pop();
    } else {
        if (canonical || column > bestWidth || prettyFlow) {
            writeIndent();
        }
        if (!canonical && checkSimpleKey()) {
            states.push(new ExpectFlowMappingSimpleValue());
            expectNode(false, true, true);
        } else {
            writeIndicator("?", true, false, false);
            states.push(new ExpectFlowMappingValue());
            expectNode(false, true, false);
        }
    }
}
 
Example #2
Source File: ExpectBlockMappingKey.java    From Diorite with MIT License 6 votes vote down vote up
static void expect(Emitter emitter, boolean first) throws IOException
    {
        if (! first && (emitter.event instanceof MappingEndEvent))
        {
            emitter.indent = emitter.indents.pop();
            emitter.state = emitter.states.pop();
        }
        else
        {
            if (emitter.checkSimpleKey())
            {
//                emitter.writeComment("This is test comment!"); TODO
                emitter.writeIndent();
                emitter.states.push(new ExpectBlockMappingSimpleValue());
                emitter.expectNode(false, true, true, emitter.indent);
            }
            else
            {
                emitter.writeIndent();
                emitter.writeIndicator("?", true, false, true);
                emitter.states.push(new ExpectBlockMappingValue());
                emitter.expectNode(false, true, false);
            }
        }
    }
 
Example #3
Source File: Emitter.java    From orion.server with Eclipse Public License 1.0 6 votes vote down vote up
public void expect() throws IOException {
    if (!this.first && event instanceof MappingEndEvent) {
        indent = indents.pop();
        state = states.pop();
    } else {
        writeIndent();
        if (checkSimpleKey()) {
            states.push(new ExpectBlockMappingSimpleValue());
            expectNode(false, true, true);
        } else {
            writeIndicator("?", true, false, true);
            states.push(new ExpectBlockMappingValue());
            expectNode(false, true, false);
        }
    }
}
 
Example #4
Source File: ParserImplTest.java    From snake-yaml with Apache License 2.0 6 votes vote down vote up
public void testGetEvent2() {
    String data = "american:\n  - Boston Red Sox";
    StreamReader reader = new StreamReader(data);
    Parser parser = new ParserImpl(reader);
    Mark dummyMark = new Mark("dummy", 0, 0, 0, "", 0);
    LinkedList<Event> etalonEvents = new LinkedList<Event>();
    etalonEvents.add(new StreamStartEvent(dummyMark, dummyMark));
    etalonEvents.add(new DocumentStartEvent(dummyMark, dummyMark, false, null, null));
    etalonEvents
            .add(new MappingStartEvent(null, null, true, dummyMark, dummyMark, Boolean.TRUE));
    etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "american",
            dummyMark, dummyMark, (char) 0));
    etalonEvents.add(new SequenceStartEvent(null, null, true, dummyMark, dummyMark,
            Boolean.FALSE));
    etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false),
            "Boston Red Sox", dummyMark, dummyMark, (char) 0));
    etalonEvents.add(new SequenceEndEvent(dummyMark, dummyMark));
    etalonEvents.add(new MappingEndEvent(dummyMark, dummyMark));
    etalonEvents.add(new DocumentEndEvent(dummyMark, dummyMark, false));
    etalonEvents.add(new StreamEndEvent(dummyMark, dummyMark));
    check(etalonEvents, parser);
}
 
Example #5
Source File: ParserImplTest.java    From snake-yaml with Apache License 2.0 6 votes vote down vote up
public void testGetEvent() {
    String data = "string: abcd";
    StreamReader reader = new StreamReader(data);
    Parser parser = new ParserImpl(reader);
    Mark dummyMark = new Mark("dummy", 0, 0, 0, "", 0);
    LinkedList<Event> etalonEvents = new LinkedList<Event>();
    etalonEvents.add(new StreamStartEvent(dummyMark, dummyMark));
    etalonEvents.add(new DocumentStartEvent(dummyMark, dummyMark, false, null, null));
    etalonEvents.add(new MappingStartEvent(null, null, true, dummyMark, dummyMark,
            Boolean.FALSE));
    etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "string",
            dummyMark, dummyMark, (char) 0));
    etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "abcd",
            dummyMark, dummyMark, (char) 0));
    etalonEvents.add(new MappingEndEvent(dummyMark, dummyMark));
    etalonEvents.add(new DocumentEndEvent(dummyMark, dummyMark, false));
    etalonEvents.add(new StreamEndEvent(dummyMark, dummyMark));
    check(etalonEvents, parser);
}
 
Example #6
Source File: Emitter.java    From snake-yaml with Apache License 2.0 6 votes vote down vote up
public void expect() throws IOException {
    if (event instanceof MappingEndEvent) {
        indent = indents.pop();
        flowLevel--;
        writeIndicator("}", false, false, false);
        state = states.pop();
    } else {
        if (canonical || (column > bestWidth && splitLines) || prettyFlow) {
            writeIndent();
        }
        if (!canonical && checkSimpleKey()) {
            states.push(new ExpectFlowMappingSimpleValue());
            expectNode(false, true, true);
        } else {
            writeIndicator("?", true, false, false);
            states.push(new ExpectFlowMappingValue());
            expectNode(false, true, false);
        }
    }
}
 
Example #7
Source File: Emitter.java    From snake-yaml with Apache License 2.0 6 votes vote down vote up
public void expect() throws IOException {
    if (!this.first && event instanceof MappingEndEvent) {
        indent = indents.pop();
        state = states.pop();
    } else {
        writeIndent();
        if (checkSimpleKey()) {
            states.push(new ExpectBlockMappingSimpleValue());
            expectNode(false, true, true);
        } else {
            writeIndicator("?", true, false, true);
            states.push(new ExpectBlockMappingValue());
            expectNode(false, true, false);
        }
    }
}
 
Example #8
Source File: ExpectFirstFlowMappingKey.java    From Diorite with MIT License 5 votes vote down vote up
@Override
public void expect(Emitter emitter) throws IOException
{
    if (emitter.event instanceof MappingEndEvent)
    {
        emitter.indent = emitter.indents.pop();
        emitter.flowLevel--;
        emitter.writeIndicator("}", false, false, false);
        emitter.state = emitter.states.pop();
    }
    else
    {
        if (emitter.canonical || ((emitter.column > emitter.bestWidth) && emitter.splitLines) || emitter.prettyFlow)
        {
            emitter.writeIndent();
        }
        if (! emitter.canonical && emitter.checkSimpleKey())
        {
            emitter.states.push(new ExpectFlowMappingSimpleValue());
            emitter.expectNode(false, true, true);
        }
        else
        {
            emitter.writeIndicator("?", true, false, false);
            emitter.states.push(new ExpectFlowMappingValue());
            emitter.expectNode(false, true, false);
        }
    }
}
 
Example #9
Source File: ExpectFlowMappingKey.java    From Diorite with MIT License 5 votes vote down vote up
@Override
public void expect(Emitter emitter) throws IOException
{
    if (emitter.event instanceof MappingEndEvent)
    {
        emitter.indent = emitter.indents.pop();
        emitter.flowLevel--;
        if (emitter.canonical)
        {
            emitter.writeIndicator(",", false, false, false);
            emitter.writeIndent();
        }
        if (emitter.prettyFlow)
        {
            emitter.writeIndent();
        }
        emitter.writeIndicator("}", false, false, false);
        emitter.state = emitter.states.pop();
    }
    else
    {
        emitter.writeIndicator(",", false, false, false);
        if (emitter.canonical || ((emitter.column > emitter.bestWidth) && emitter.splitLines) || emitter.prettyFlow)
        {
            emitter.writeIndent();
        }
        if (! emitter.canonical && emitter.checkSimpleKey())
        {
            emitter.states.push(new ExpectFlowMappingSimpleValue());
            emitter.expectNode(false, true, true);
        }
        else
        {
            emitter.writeIndicator("?", true, false, false);
            emitter.states.push(new ExpectFlowMappingValue());
            emitter.expectNode(false, true, false);
        }
    }
}
 
Example #10
Source File: CanonicalParser.java    From snake-yaml with Apache License 2.0 5 votes vote down vote up
private void parseMapping() {
    scanner.getToken(Token.ID.FlowMappingStart);
    if (!scanner.checkToken(Token.ID.FlowMappingEnd)) {
        parseMapEntry();
        while (!scanner.checkToken(Token.ID.FlowMappingEnd)) {
            scanner.getToken(Token.ID.FlowEntry);
            if (!scanner.checkToken(Token.ID.FlowMappingEnd)) {
                parseMapEntry();
            }
        }
    }
    scanner.getToken(Token.ID.FlowMappingEnd);
    events.add(new MappingEndEvent(null, null));
}
 
Example #11
Source File: Emitter.java    From snake-yaml with Apache License 2.0 5 votes vote down vote up
public void expect() throws IOException {
    if (event instanceof MappingEndEvent) {
        indent = indents.pop();
        flowLevel--;
        if (canonical) {
            writeIndicator(",", false, false, false);
            writeIndent();
        }
        if (prettyFlow) {
            writeIndent();
        }
        writeIndicator("}", false, false, false);
        state = states.pop();
    } else {
        writeIndicator(",", false, false, false);
        if (canonical || (column > bestWidth && splitLines) || prettyFlow) {
            writeIndent();
        }
        if (!canonical && checkSimpleKey()) {
            states.push(new ExpectFlowMappingSimpleValue());
            expectNode(false, true, true);
        } else {
            writeIndicator("?", true, false, false);
            states.push(new ExpectFlowMappingValue());
            expectNode(false, true, false);
        }
    }
}
 
Example #12
Source File: Emitter.java    From orion.server with Eclipse Public License 1.0 5 votes vote down vote up
public void expect() throws IOException {
    if (event instanceof MappingEndEvent) {
        indent = indents.pop();
        flowLevel--;
        if (canonical) {
            writeIndicator(",", false, false, false);
            writeIndent();
        }
        if (prettyFlow) {
            writeIndent();
        }
        writeIndicator("}", false, false, false);
        state = states.pop();
    } else {
        writeIndicator(",", false, false, false);
        if (canonical || column > bestWidth || prettyFlow) {
            writeIndent();
        }
        if (!canonical && checkSimpleKey()) {
            states.push(new ExpectFlowMappingSimpleValue());
            expectNode(false, true, true);
        } else {
            writeIndicator("?", true, false, false);
            states.push(new ExpectFlowMappingValue());
            expectNode(false, true, false);
        }
    }
}
 
Example #13
Source File: Emitter.java    From snake-yaml with Apache License 2.0 4 votes vote down vote up
private boolean checkEmptyMapping() {
    return event instanceof MappingStartEvent && !events.isEmpty() && events.peek() instanceof MappingEndEvent;
}
 
Example #14
Source File: Serializer.java    From snake-yaml with Apache License 2.0 4 votes vote down vote up
private void serializeNode(Node node, Node parent) throws IOException {
    if (node.getNodeId() == NodeId.anchor) {
        node = ((AnchorNode) node).getRealNode();
    }
    String tAlias = this.anchors.get(node);
    if (this.serializedNodes.contains(node)) {
        this.emitter.emit(new AliasEvent(tAlias, null, null));
    } else {
        this.serializedNodes.add(node);
        switch (node.getNodeId()) {
        case scalar:
            ScalarNode scalarNode = (ScalarNode) node;
            Tag detectedTag = this.resolver.resolve(NodeId.scalar, scalarNode.getValue(), true);
            Tag defaultTag = this.resolver.resolve(NodeId.scalar, scalarNode.getValue(), false);
            ImplicitTuple tuple = new ImplicitTuple(node.getTag().equals(detectedTag), node
                    .getTag().equals(defaultTag));
            ScalarEvent event = new ScalarEvent(tAlias, node.getTag().getValue(), tuple,
                    scalarNode.getValue(), null, null, scalarNode.getStyle());
            this.emitter.emit(event);
            break;
        case sequence:
            SequenceNode seqNode = (SequenceNode) node;
            boolean implicitS = node.getTag().equals(this.resolver.resolve(NodeId.sequence,
                    null, true));
            this.emitter.emit(new SequenceStartEvent(tAlias, node.getTag().getValue(),
                    implicitS, null, null, seqNode.getFlowStyle()));
            List<Node> list = seqNode.getValue();
            for (Node item : list) {
                serializeNode(item, node);
            }
            this.emitter.emit(new SequenceEndEvent(null, null));
            break;
        default:// instance of MappingNode
            Tag implicitTag = this.resolver.resolve(NodeId.mapping, null, true);
            boolean implicitM = node.getTag().equals(implicitTag);
            this.emitter.emit(new MappingStartEvent(tAlias, node.getTag().getValue(),
                    implicitM, null, null, ((CollectionNode) node).getFlowStyle()));
            MappingNode mnode = (MappingNode) node;
            List<NodeTuple> map = mnode.getValue();
            for (NodeTuple row : map) {
                Node key = row.getKeyNode();
                Node value = row.getValueNode();
                serializeNode(key, mnode);
                serializeNode(value, mnode);
            }
            this.emitter.emit(new MappingEndEvent(null, null));
        }
    }
}
 
Example #15
Source File: ParserImpl.java    From snake-yaml with Apache License 2.0 4 votes vote down vote up
public Event produce() {
    state = new ParseFlowSequenceEntry(false);
    Token token = scanner.peekToken();
    return new MappingEndEvent(token.getStartMark(), token.getEndMark());
}
 
Example #16
Source File: Emitter.java    From orion.server with Eclipse Public License 1.0 4 votes vote down vote up
private boolean checkEmptyMapping() {
    return (event instanceof MappingStartEvent && !events.isEmpty() && events.peek() instanceof MappingEndEvent);
}
 
Example #17
Source File: Emitter.java    From Diorite with MIT License 4 votes vote down vote up
private boolean checkEmptyMapping()
{
    return (this.event instanceof MappingStartEvent) && ! this.events.isEmpty() && (this.events.peek() instanceof MappingEndEvent);
}
 
Example #18
Source File: Serializer.java    From Diorite with MIT License 4 votes vote down vote up
private void serializeNode(Node node, @Nullable Node parent, LinkedList<String> commentPath, boolean mappingScalar) throws IOException
{
    if (node.getNodeId() == NodeId.anchor)
    {
        node = ((AnchorNode) node).getRealNode();
    }
    String tAlias = this.anchors.get(node);
    if (this.serializedNodes.contains(node))
    {
        this.emitter.emit(new AliasEvent(tAlias, null, null));
    }
    else
    {
        this.serializedNodes.add(node);
        switch (node.getNodeId())
        {
            case scalar:
                ScalarNode scalarNode = (ScalarNode) node;
                Tag detectedTag = this.resolver.resolve(NodeId.scalar, scalarNode.getValue(), true);
                Tag defaultTag = this.resolver.resolve(NodeId.scalar, scalarNode.getValue(), false);
                String[] pathNodes = commentPath.toArray(new String[commentPath.size()]);
                String comment;
                if (this.checkCommentsSet(pathNodes))
                {
                    comment = this.comments.getComment(pathNodes);
                }
                else
                {
                    comment = null;
                }
                ImplicitTuple tuple = new ImplicitTupleExtension(node.getTag().equals(detectedTag), node.getTag().equals(defaultTag), comment);
                ScalarEvent event = new ScalarEvent(tAlias, node.getTag().getValue(), tuple, scalarNode.getValue(), null, null, scalarNode.getStyle());
                this.emitter.emit(event);
                break;
            case sequence:
                SequenceNode seqNode = (SequenceNode) node;
                boolean implicitS = node.getTag().equals(this.resolver.resolve(NodeId.sequence, null, true));
                this.emitter.emit(new SequenceStartEvent(tAlias, node.getTag().getValue(), implicitS, null, null, seqNode.getFlowStyle()));
                List<Node> list = seqNode.getValue();
                for (Node item : list)
                {
                    this.serializeNode(item, node, commentPath, false);
                }
                this.emitter.emit(new SequenceEndEvent(null, null));
                break;
            default:// instance of MappingNode
                Tag implicitTag = this.resolver.resolve(NodeId.mapping, null, true);
                boolean implicitM = node.getTag().equals(implicitTag);
                this.emitter.emit(new MappingStartEvent(tAlias, node.getTag().getValue(), implicitM, null, null, ((CollectionNode) node).getFlowStyle()));
                MappingNode mnode = (MappingNode) node;
                List<NodeTuple> map = mnode.getValue();
                for (NodeTuple row : map)
                {
                    Node key = row.getKeyNode();
                    Node value = row.getValueNode();
                    if (key instanceof ScalarNode)
                    {
                        commentPath.add(((ScalarNode) key).getValue());
                    }
                    this.serializeNode(key, mnode, commentPath, true);
                    this.serializeNode(value, mnode, commentPath, false);
                    if (key instanceof ScalarNode)
                    {
                        commentPath.removeLast();
                    }
                }
                this.emitter.emit(new MappingEndEvent(null, null));
        }
    }
}
 
Example #19
Source File: Serializer.java    From orion.server with Eclipse Public License 1.0 4 votes vote down vote up
private void serializeNode(Node node, Node parent) throws IOException {
    if (node.getNodeId() == NodeId.anchor) {
        node = ((AnchorNode) node).getRealNode();
    }
    String tAlias = this.anchors.get(node);
    if (this.serializedNodes.contains(node)) {
        this.emitter.emit(new AliasEvent(tAlias, null, null));
    } else {
        this.serializedNodes.add(node);
        switch (node.getNodeId()) {
        case scalar:
            ScalarNode scalarNode = (ScalarNode) node;
            Tag detectedTag = this.resolver.resolve(NodeId.scalar, scalarNode.getValue(), true);
            Tag defaultTag = this.resolver.resolve(NodeId.scalar, scalarNode.getValue(), false);
            ImplicitTuple tuple = new ImplicitTuple(node.getTag().equals(detectedTag), node
                    .getTag().equals(defaultTag));
            ScalarEvent event = new ScalarEvent(tAlias, node.getTag().getValue(), tuple,
                    scalarNode.getValue(), null, null, scalarNode.getStyle());
            this.emitter.emit(event);
            break;
        case sequence:
            SequenceNode seqNode = (SequenceNode) node;
            boolean implicitS = (node.getTag().equals(this.resolver.resolve(NodeId.sequence,
                    null, true)));
            this.emitter.emit(new SequenceStartEvent(tAlias, node.getTag().getValue(),
                    implicitS, null, null, seqNode.getFlowStyle()));
            int indexCounter = 0;
            List<Node> list = seqNode.getValue();
            for (Node item : list) {
                serializeNode(item, node);
                indexCounter++;
            }
            this.emitter.emit(new SequenceEndEvent(null, null));
            break;
        default:// instance of MappingNode
            Tag implicitTag = this.resolver.resolve(NodeId.mapping, null, true);
            boolean implicitM = (node.getTag().equals(implicitTag));
            this.emitter.emit(new MappingStartEvent(tAlias, node.getTag().getValue(),
                    implicitM, null, null, ((CollectionNode) node).getFlowStyle()));
            MappingNode mnode = (MappingNode) node;
            List<NodeTuple> map = mnode.getValue();
            for (NodeTuple row : map) {
                Node key = row.getKeyNode();
                Node value = row.getValueNode();
                serializeNode(key, mnode);
                serializeNode(value, mnode);
            }
            this.emitter.emit(new MappingEndEvent(null, null));
        }
    }
}
 
Example #20
Source File: ParserImpl.java    From orion.server with Eclipse Public License 1.0 4 votes vote down vote up
public Event produce() {
    state = new ParseFlowSequenceEntry(false);
    Token token = scanner.peekToken();
    return new MappingEndEvent(token.getStartMark(), token.getEndMark());
}