Sha256: faff18bf4d6a71f972d1f2a2b24298602e07ee2a3ab105d487a5d3591bfebe13

Contents?: true

Size: 893 Bytes

Versions: 1

Compression:

Stored size: 893 Bytes

Contents

package org.embulk.input.singer_tap;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import org.embulk.spi.type.Type;
import org.embulk.spi.type.Types;
import org.msgpack.value.Value;
import org.msgpack.value.ValueFactory;

import java.util.ArrayList;
import java.util.List;

public class ArrayParser implements  RecordParser {
    private RecordParser elementParser;

    public ArrayParser(JsonNode node) throws Exception {
        elementParser = ParserGenerator.generateParser(node);
    }

    public Value parse(JsonNode node) {
        ArrayNode arrNode = (ArrayNode) node;
        List<Value> list = new ArrayList<>();
        for (JsonNode element : arrNode) {
            list.add(elementParser.parse(element));
        }

        return ValueFactory.newArray(list);
    }

    public Type embulkType() { return Types.JSON; }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
embulk-input-singer_tap-0.1.0 src/main/java/org/embulk/input/singer_tap/ArrayParser.java