package nl.helixsoft.recordstream; public class DefaultRecord implements Record { private final RecordMetaData metaData; private final Object[] fields; public DefaultRecord (RecordMetaData _metaData, Object fields[]) { this.metaData = _metaData; this.fields = fields; assert (metaData.getNumCols() == fields.length); } public Object get(int i) { return fields[i]; } public Object get(String s) { return fields[metaData.getColumnIndex(s)]; } @Override @Deprecated public Object getValue(int i) { return get(i); } @Override @Deprecated public Object getValue(String s) { return get(s); } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append ("DefaultRecord{"); for (int i = 0; i < getMetaData().getNumCols(); ++i) { if (i != 0) builder.append (", "); builder.append ("'"); builder.append (getMetaData().getColumnName(i)); builder.append ("':'"); builder.append (fields[i]); builder.append ("'"); } builder.append ("}"); return builder.toString(); } @Override public RecordMetaData getMetaData() { return metaData; } @Override public void set(String s, Object val) { fields[metaData.getColumnIndex(s)] = val; } @Override public void set(int i, Object val) { fields[i] = val; } }