package edu.cmu.minorthird.classify;
import java.util.Iterator;
import edu.cmu.minorthird.util.gui.Viewer;
import edu.cmu.minorthird.util.gui.Visible;
/**
* Common code for all instance implementations
* @author ksteppe
*/
public abstract class AbstractInstance implements Instance,Visible{
protected Object source;
protected String subpopulationId;
/** Return the underlying object being represented. */
@Override
public Object getSource() { return source; }
/** Return the subpopulation from which the source was drawn. */
@Override
public String getSubpopulationId() { return subpopulationId; }
/** Debugging view of an instance. */
@Override
public String toString(){
StringBuilder buf=new StringBuilder("[instance/"+subpopulationId+":");
for(Iterator<Feature> i=binaryFeatureIterator();i.hasNext();){
buf.append(" "+i.next());
}
for (Iterator<Feature> i=numericFeatureIterator();i.hasNext();){
Feature f = i.next();
buf.append(" "+f+":"+getWeight(f));
}
buf.append("]");
return buf.toString();
}
/** Retrieve Viewer for the instance */
@Override
public Viewer toGUI(){
return new GUI.InstanceViewer(this);
}
}