package org.rakam.util; import com.fasterxml.jackson.databind.node.ObjectNode; import org.apache.avro.Schema; import org.apache.avro.generic.GenericRecord; public class MapProxyGenericRecord implements GenericRecord { private final ObjectNode properties; public MapProxyGenericRecord(ObjectNode properties) { this.properties = properties; } @Override public Schema getSchema() { throw new UnsupportedOperationException(); } @Override public void put(int i, Object v) { throw new UnsupportedOperationException(); } @Override public Object get(int i) { throw new UnsupportedOperationException(); } @Override public void put(String key, Object v) { if (v instanceof String) { properties.put(key, (String) v); } else if (v instanceof Integer) { properties.put(key, (Integer) v); } else if (v instanceof Float) { properties.put(key, (Float) v); } else if (v instanceof Double) { properties.put(key, (Double) v); } else if (v instanceof Long) { properties.put(key, (Long) v); } else if (v instanceof byte[]) { properties.put(key, (byte[]) v); } else if (v instanceof Boolean) { properties.put(key, (Boolean) v); } else { throw new UnsupportedOperationException(); } } @Override public Object get(String key) { return properties.get(key); } }