package openminer.data; import java.io.*; import java.util.*; import openminer.util.db.*; public class Instance implements BytesObject { private Instances m_InstancesRef = null; private Object[] m_Values = null; public Instance() { } public Instance(int numValue) { m_Values = new Object[numValue]; } public void create(int numValue) { m_Values = new Object[numValue]; } public void setInstances(Instances instances) { m_InstancesRef = instances; } public int getType(int index) { return m_InstancesRef.getAttribute(index).getType(); } public int getType(String attName) { Attribute att = m_InstancesRef.getAttribute(attName); if(att != null) return att.getType(); else return Attribute.ERROR_TYPE; } public Attribute getAttribute(int index) { return m_InstancesRef.getAttribute(index); } public int getAttributeCount() { return m_InstancesRef.getAttributeCount(); } public Object getValue(int index) { return (Object)m_Values[index]; } public Object getValue(String attName) { int attIndex = m_InstancesRef.getAttributeIndex(attName); if(attIndex == -1) return null; return m_Values[attIndex]; } public double getValueAsDouble(int index) { return ((Double)m_Values[index]).doubleValue(); } public double getValueAsDouble(String attName) { return ((Double)getValue(attName)).doubleValue(); } public int getValueAsInt(int index) { return ((Integer)m_Values[index]).intValue(); } public int getValueAsInt(String attName) { return ((Integer)getValue(attName)).intValue(); } public void setValue(int index, Object value) { m_Values[index] = value; } public void setValue(String attName, Object value) { int attIndex = m_InstancesRef.getAttributeIndex(attName); if(attIndex >=0) { m_Values[attIndex] = value; } } public Instance copyNew() { Instance newInst = new Instance(m_Values.length); newInst.m_InstancesRef = this.m_InstancesRef; for(int i=0; i< this.m_Values.length; i++) { newInst.m_Values[i] = this.m_Values[i]; } return newInst; } public void printInLine() { for(int i=0;i