package prefuse.visual.expression; import prefuse.data.Schema; import prefuse.data.Tuple; import prefuse.data.tuple.TupleSet; import prefuse.visual.VisualItem; /** * GroupExpression that returns the size of a data group. * * @author <a href="http://jheer.org">jeffrey heer</a> */ public class GroupSizeFunction extends GroupExpression { /** * Create a new, uninitialized GroupSizeFunction. The parameter for * this Function needs to be set. */ public GroupSizeFunction() { } /** * Create a new GroupSizeFunction using the given data group name * as the Function parameter. * @param group the data group name to use as a parameter */ public GroupSizeFunction(String group) { super(group); } /** * @see prefuse.data.expression.Function#getName() */ public String getName() { return "GROUPSIZE"; } /** * @see prefuse.data.expression.Expression#getType(prefuse.data.Schema) */ public Class getType(Schema s) { return int.class; } /** * @see prefuse.data.expression.Expression#get(prefuse.data.Tuple) */ public Object get(Tuple t) { return new Integer(getInt(t)); } /** * @see prefuse.data.expression.Expression#getDouble(prefuse.data.Tuple) */ public double getDouble(Tuple t) { return getInt(t); } /** * @see prefuse.data.expression.Expression#getFloat(prefuse.data.Tuple) */ public float getFloat(Tuple t) { return getInt(t); } /** * @see prefuse.data.expression.Expression#getInt(prefuse.data.Tuple) */ public int getInt(Tuple t) { String group = getGroup(t); if ( group == null ) { return -1; } TupleSet ts = ((VisualItem)t).getVisualization().getGroup(group); return ( ts==null ? 0 : ts.getTupleCount() ); } /** * @see prefuse.data.expression.Expression#getLong(prefuse.data.Tuple) */ public long getLong(Tuple t) { return getInt(t); } } // end of class GroupSizeFunction