package org.embulk.config; import java.util.List; import java.util.Map; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; public interface DataSource { public List getAttributeNames(); public Iterable> getAttributes(); public boolean isEmpty(); public E get(Class type, String attrName); public E get(Class type, String attrName, E defaultValue); public DataSource getNested(String attrName); public DataSource getNestedOrSetEmpty(String attrName); public DataSource set(String attrName, Object v); public DataSource setNested(String attrName, DataSource v); public DataSource setAll(DataSource other); public DataSource deepCopy(); public DataSource merge(DataSource other); public ObjectNode getObjectNode(); }