KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > dql > queryexpression > queryspecification > rownumfunction


1 package com.daffodilwoods.daffodildb.server.sql99.dql.queryexpression.queryspecification;
2
3 import java.util.*;
4 import com.daffodilwoods.daffodildb.server.serversystem.*;
5 import com.daffodilwoods.daffodildb.server.sql99.common.*;
6 import com.daffodilwoods.daffodildb.server.sql99.expression.*;
7 import com.daffodilwoods.daffodildb.server.sql99.token.*;
8 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
9 import com.daffodilwoods.database.resource.*;
10 import com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression.*;
11 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.
12
    AbstractRowValueExpression;
13 /**
14  * This class represents RowNum() function used in selectList.It is used to rank
15  * the record presents in table.It gives particular number to every row presents
16  * in table.
17  * <p>Title: </p>
18  * <p>Description: </p>
19  * <p>Copyright: Copyright (c) 2004</p>
20  * <p>Company: </p>
21  * @author not attributable
22  * @version 1.0
23  */

24 public class rownumfunction extends AbstractNumericValueFunction implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter, qualifiedasterisk, Datatypes, /*_TOKEN,*/ numericvaluefunction{
25
26   public SRESERVEDWORD1206543922correlationname _OptSRESERVEDWORD1206543922correlationname0;
27    public Srightparen_1874859514 _Srightparen_18748595141;
28    public Sleftparen653880241 _Sleftparen6538802412;
29    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439223;
30
31    ColumnDetails columnDetail;
32
33
34    public Object JavaDoc run(Object JavaDoc object) throws com.daffodilwoods.database.resource.DException {
35      /* Done by vibha on 23-11-2004
36       because columnDetail is initialised from getDerivedColumnDetails() and in case when
37       rownum is used in where claues like-
38       select * from tablename where rownum() =1, getDerivedColumnDetails() is not called and
39       columnDetail will not be initialised so for this case in getColumnValues(column) column is passed that is
40       initialised from getColumnDetails
41       */

42     if(columnDetail == null){
43     return ( (_VariableValues) object).getColumnValues(column);
44     }
45      return ( (_VariableValues) object).getColumnValues(columnDetail);
46    }
47
48    public ParameterInfo[] getParameterInfo() throws DException {
49       return new ParameterInfo[0];
50    }
51
52    public String JavaDoc getType() throws DException {
53         return (String JavaDoc) _SRESERVEDWORD12065439223.run(null);
54      }
55
56
57      public ColumnDetails[] getColumnDetails() throws DException {
58         column = new ColumnDetails();
59         column.setDatatype(LONG);
60         String JavaDoc type = (String JavaDoc) _SRESERVEDWORD12065439223.run(null);
61         column.setColumnName(new String JavaDoc[] {type});
62         column.setFunctionType(type);
63         column.setType(SCALARFUNCTION);
64         column.setObject(this);
65         this.columnDetails = new ColumnDetails[0];
66         return new ColumnDetails[] {column};
67      }
68
69
70
71      /**
72      * This method is required to get columndetail corresponding to ruwnum function
73      * used in selectlist.columnname of rownum function is 'rownum' and dataype is
74      * Long.
75      * @return
76      * @throws DException
77      */

78     public ColumnDetails[] getDerivedColumnDetails() throws DException {
79       if (columnDetail == null) {
80          columnDetail = new ColumnDetails();
81          columnDetail.setType(FUNCTIONAL);
82          columnDetail.setColumnName(new String JavaDoc[] {"rownum"});
83          columnDetail.setDatatype(LONG);
84          columnDetail.setSize(LONGSIZE);
85          columnDetail.setObject(this);
86          if (_OptSRESERVEDWORD1206543922correlationname0 != null) {
87             columnDetail.setAliasName( (String JavaDoc) _OptSRESERVEDWORD1206543922correlationname0.run(null));
88          }
89       }
90       return new ColumnDetails[] {columnDetail};
91    }
92
93
94
95    public _Reference[] checkSemantic(_ServerSession parent) throws DException {
96      _Reference[] ref = super.checkSemantic(parent);
97       return ref;
98    }
99
100    public String JavaDoc toString() {
101       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
102       sb.append(" ");
103       sb.append(_SRESERVEDWORD12065439223);
104       sb.append(" ");
105       sb.append(_Sleftparen6538802412);
106       sb.append(" ");
107       sb.append(_Srightparen_18748595141);
108       sb.append(" ");
109       if (_OptSRESERVEDWORD1206543922correlationname0 != null) {
110          sb.append(_OptSRESERVEDWORD1206543922correlationname0);
111       }
112       return sb.toString();
113    }
114
115    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
116       rownumfunction tempClass = new rownumfunction();
117       if (_OptSRESERVEDWORD1206543922correlationname0 != null) {
118          tempClass._OptSRESERVEDWORD1206543922correlationname0 = (SRESERVEDWORD1206543922correlationname) _OptSRESERVEDWORD1206543922correlationname0.clone();
119       }
120       tempClass._Srightparen_18748595141 = (Srightparen_1874859514) _Srightparen_18748595141.clone();
121       tempClass._Sleftparen6538802412 = (Sleftparen653880241) _Sleftparen6538802412.clone();
122       tempClass._SRESERVEDWORD12065439223 = (SRESERVEDWORD1206543922) _SRESERVEDWORD12065439223.clone();
123       return tempClass;
124    }
125
126    /**
127     * For documentation of underlying methods, refer to documentation of
128     * _sortspecificationAndselectSubList
129     */

130
131    public ByteComparison getByteComparison(Object JavaDoc object) throws DException {
132      ByteComparison byteComparison = new ByteComparison(false, new int[] {LONG});
133      byteComparison.setSize(getColumnSize(object));
134      return byteComparison;
135    }
136
137    public ColumnDetails[] getChildColumnDetails() throws DException {
138      return columnDetails;
139    }
140
141
142
143   /**
144    * getChilds
145    *
146    * @return AbstractRowValueExpression[]
147    */

148   public AbstractRowValueExpression[] getChilds() {
149     AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] {};
150       return childs;
151    }
152
153  public int getColumnSize(Object JavaDoc object) throws DException {
154       return Datatypes.LONGSIZE;
155    }
156
157 }
158
Popular Tags