package edu.berkeley.cs.succinct.block.json; import edu.berkeley.cs.succinct.DataType; import java.io.Serializable; import java.util.HashMap; import java.util.Map; public class FieldMapping implements Serializable { private Map<Byte, String> delimiter2fieldMap; private Map<String, Byte> field2DelimiterMap; private Map<String, DataType> field2TypeMap; public FieldMapping() { this.delimiter2fieldMap = new HashMap<>(); this.field2DelimiterMap = new HashMap<>(); this.field2TypeMap = new HashMap<>(); } public boolean containsField(String field) { return field2DelimiterMap.containsKey(field); } public boolean containsDelimiter(byte delimiter) { return delimiter2fieldMap.containsKey(delimiter); } public void put(String field, byte delimiter, DataType dataType) { field2DelimiterMap.put(field, delimiter); field2TypeMap.put(field, dataType); delimiter2fieldMap.put(delimiter, field); } public void updateType(String field, DataType dataType) { field2TypeMap.put(field, dataType); } public byte getDelimiter(String field) { return field2DelimiterMap.get(field); } public DataType getDataType(String field) { return field2TypeMap.get(field); } public String getField(byte delimiter) { return delimiter2fieldMap.get(delimiter); } public int size() { return field2DelimiterMap.size(); } }