package nl.helixsoft.stats;
import nl.helixsoft.recordstream.Record;
import nl.helixsoft.recordstream.RecordMetaData;
/**
* A view of a row in a DataFrame
*/
public class RecordView implements Record
{
private final DataFrame parent;
private final int rowIx;
public RecordView (DataFrame parent, int rowIx)
{
this.rowIx = rowIx;
this.parent = parent;
}
/** use get(s) instead */
@Override
@Deprecated
public Object getValue(String s)
{
return get(s);
}
/** use get(colIx) instead */
@Override
@Deprecated
public Object getValue(int colIx)
{
return get(colIx);
}
@Override
public Object get(String s)
{
int colIx = parent.getColumnIndex(s);
return parent.getValueAt(rowIx, colIx);
}
@Override
public Object get(int colIx)
{
return parent.getValueAt(rowIx, colIx);
}
@Override
public RecordMetaData getMetaData()
{
return parent.getMetaData();
}
@Override
public String toString()
{
StringBuilder builder = new StringBuilder();
builder.append ("RecordView{");
for (int i = 0; i < getMetaData().getNumCols(); ++i)
{
if (i != 0) builder.append (", ");
builder.append ("'");
builder.append (getMetaData().getColumnName(i));
builder.append ("':'");
builder.append (get(i));
builder.append ("'");
}
builder.append ("}");
return builder.toString();
}
@Override
public void set(String s, Object val) {
throw new UnsupportedOperationException("Writing not supported on view");
}
@Override
public void set(int i, Object val) {
throw new UnsupportedOperationException("Writing not supported on view");
}
}