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

org.raml.builder.KeyValueNodeBuilderMap Maven / Gradle / Ivy

The newest version!
package org.raml.builder;

import org.raml.yagi.framework.nodes.KeyValueNodeImpl;
import org.raml.yagi.framework.nodes.Node;
import org.raml.yagi.framework.nodes.ObjectNodeImpl;
import org.raml.yagi.framework.nodes.StringNodeImpl;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * Created. There, you have it.
 */
public class KeyValueNodeBuilderMap {

    private final Map map = new LinkedHashMap<>();

    public void addAll(T... builder) {
        for (T t : builder) {

            map.put(t.id(), t);
        }
    }

    public void addAll(List builder) {
        for (T t : builder) {

            map.put(t.id(), t);
        }
    }

    static KeyValueNodeBuilderMap createMap() {

        return new KeyValueNodeBuilderMap<>();
    }

    public void addToParent(Node documentNode) {
        for (T resourceBuilder : map.values()) {

            documentNode.addChild(resourceBuilder.buildNode());
        }

    }

    public void addAllToNamedNode(String types, Node documentNode) {

        if ( map.values().size() > 0 ) {
            ObjectNodeImpl typesNode = new ObjectNodeImpl();
            KeyValueNodeImpl typesKvn = new KeyValueNodeImpl(new StringNodeImpl(types), typesNode);
            documentNode.addChild(typesKvn);
            addToParent(typesNode);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy