01: package org.mandarax.jdbc.server.sql;
02:
03: /*
04: * Copyright (C) 1999-2004 <a href="mailto:mandarax@jbdietrich.com">Jens Dietrich</a>
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2 of the License, or (at your option) any later version.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: */
20:
21: /**
22: * Superclass for function with the arity 0 (no argument).
23: * @author <A HREF="mailto:mandarax@jbdietrich.com">Jens Dietrich</A>
24: * @version 3.3.2 <29 December 2004>
25: * @since 3.0
26: */
27: public class Function0 implements Function {
28: private String name = null;
29: private boolean isAggregationFunction = false;
30:
31: /**
32: * Constructor.
33: * @param name the function name
34: * @param isAggrFunct indicates whether this is an aggregation function
35: */
36: public Function0(String name, boolean isAggrFunct) {
37: super ();
38: this .name = name;
39: this .isAggregationFunction = isAggrFunct;
40: }
41:
42: /**
43: * Get the name of the function.
44: * @return the function name.
45: */
46: public String getName() {
47: return name;
48: }
49:
50: /**
51: * Print the term built from this function.
52: * @param out the print buffer used for printing
53: * @param children an array of string produces by printing the children
54: */
55: public void print(StringBuffer out, ColumnTerm[] children) {
56: out.append(name);
57: }
58:
59: /**
60: * Indicates whether this is an aggregation function.
61: * @return a boolean
62: */
63: public boolean isAggregationFunction() {
64: return isAggregationFunction;
65: }
66:
67: /**
68: * Get the arity of the function (the number of parameters).
69: * @return an integer number
70: */
71: public int getArity() {
72: return 0;
73: }
74:
75: /**
76: * Compares objects.
77: * @param obj an object
78: * @return a boolean
79: */
80: public boolean equals(Object obj) {
81: if (obj == null)
82: return false;
83: if (obj instanceof Function0) {
84: Function0 f = (Function0) obj;
85: return name == null ? f.name == null : name.equals(f.name);
86: }
87: return false;
88: }
89:
90: /**
91: * Get the hash code of this object.
92: * @return the hash code
93: */
94: public int hashCode() {
95: return name == null ? 0 : name.hashCode();
96: }
97:
98: }
|