KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > prefuse > visual > expression > GroupExpression


1 package prefuse.visual.expression;
2
3 import java.util.logging.Logger JavaDoc;
4
5 import prefuse.data.Tuple;
6 import prefuse.data.expression.AbstractExpression;
7 import prefuse.data.expression.Expression;
8 import prefuse.data.expression.Function;
9 import prefuse.data.expression.ObjectLiteral;
10
11 /**
12  * Abstract base class for Expression instances dealing with data groups
13  * within a Visualization. Maintains an Expression that serves as the
14  * paremter to this Function; this Expression should return a valid
15  * group name when evaluated on a given Tuple.
16  *
17  * @author <a HREF="http://jheer.org">jeffrey heer</a>
18  */

19 public abstract class GroupExpression extends AbstractExpression
20     implements Function
21 {
22     private static final Logger JavaDoc s_logger
23         = Logger.getLogger(GroupExpression.class.getName());
24
25     protected Expression m_group;
26     
27     /**
28      * Create a new GroupExpression.
29      */

30     protected GroupExpression() {
31         m_group = null;
32     }
33     
34     /**
35      * Create a new GroupExpression over the given group name.
36      * @param group the data group name
37      */

38     protected GroupExpression(String JavaDoc group) {
39         m_group = new ObjectLiteral(group);
40     }
41     
42     /**
43      * Evaluate the group name expression for the given Tuple
44      * @param t the input Tuple to the group name expression
45      * @return the String result of the expression
46      */

47     protected String JavaDoc getGroup(Tuple t) {
48         String JavaDoc group = (String JavaDoc)m_group.get(t);
49         if ( group == null ) {
50             s_logger.warning("Null group lookup");
51         }
52         return group;
53     }
54     
55     
56     /**
57      * Attempts to add the given expression as the group expression.
58      * @see prefuse.data.expression.Function#addParameter(prefuse.data.expression.Expression)
59      */

60     public void addParameter(Expression e) {
61         if ( m_group == null )
62             m_group = e;
63         else
64             throw new IllegalStateException JavaDoc(
65                "This function takes only 1 parameter.");
66     }
67
68     /**
69      * @see prefuse.data.expression.Function#getParameterCount()
70      */

71     public int getParameterCount() {
72         return 1;
73     }
74     
75     /**
76      * @see java.lang.Object#toString()
77      */

78     public String JavaDoc toString() {
79         return getName()+"("+m_group+")";
80     }
81     
82 } // end of class GroupExpression
83
Popular Tags