KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > dql > plan > order > OrderPlan


1 package com.daffodilwoods.daffodildb.server.sql99.dql.plan.order;
2
3 import com.daffodilwoods.database.resource.*;
4 import com.daffodilwoods.database.sqlinitiator.*;
5
6 /**
7  * This class represents plan for Order. Order is needed for group by, order by,
8  * set operators, distinct. It is responsible to provide optimal planning to
9  * satisfy the ordering needs of query.OrderPlan are devided in to 3 categories
10  * SingleTableOrderPlan----------->Order solved at single table level
11  * JoinLevelOrder----------------->Order not solved at single table,solved on join
12  * groupbylevelOrder -----------------> Order solved on Group.
13  * <p>Title: </p>
14  * <p>Description: </p>
15  * <p>Copyright: Copyright (c) 2004</p>
16  * <p>Company: </p>
17  * @author not attributable
18  * @version 1.0
19  */

20 public class OrderPlan implements _OrderPlan {
21
22    public OrderPlan() {
23    }
24
25    /**
26     * It represents order plan which is solved at single table.
27     */

28    private _SingleTableOrderPlan[] singleTableOrderPlan0;
29    /**
30     * It represents order plan,which does not solved on single table,It will be
31     * solved on join.
32     */

33    private _Order joinLevelOrder;
34    /**
35     * It represents order plan,which solved on group by
36     */

37    private _Order groupByLevelOrder;
38    /**
39     * It represents order plan,which solved on queryLevel ie if GroupBy is present than
40     * solved on groupby and if groupby is not present than solved on
41     * join level
42     */

43
44    private _Order queryLevelOrderPlan;
45
46    public _SingleTableOrderPlan[] getSingleTableOrderPlans() throws DException {
47       return singleTableOrderPlan0;
48    }
49    public String JavaDoc toString() {
50       String JavaDoc str = "ORDERPLAN";
51       if (singleTableOrderPlan0 != null) {
52          for (int i = 0, length = singleTableOrderPlan0.length; i < length; i++) {
53             str += "[" + singleTableOrderPlan0[i] + "]";
54          }
55       }
56       if (joinLevelOrder != null) {
57          str += "[JOINORDERPLAN[" + joinLevelOrder + "]]";
58       }
59       if (groupByLevelOrder != null) {
60          str += "[GROUPBYORDERPLAN[" + groupByLevelOrder + "]]";
61       }
62       if (queryLevelOrderPlan != null) {
63          str += "[QUERYLEVELORDERPLAN[" + queryLevelOrderPlan + "]]";
64       }
65
66
67       return str;
68    }
69    /**
70     * For documentation of following method refers to _OrderPlan.
71     * @return
72     * @throws DException
73     */

74    public _Order getJoinLevelOrder() throws DException {
75       return joinLevelOrder;
76    }
77
78    public _Order getGroupByLevelOrder() throws DException {
79       return groupByLevelOrder;
80    }
81
82    public void setGroupByOrderPlan(_Order groupByOrderPlan) throws DException {
83       this.groupByLevelOrder = groupByOrderPlan;
84    }
85
86    public void setJoinOrderPlan(_Order joinOrderPlan) throws DException {
87       this.joinLevelOrder = joinOrderPlan;
88    }
89
90    public void setSingleTableOrderPlans(_SingleTableOrderPlan[] singleTableOrderPlan) throws DException {
91       this.singleTableOrderPlan0 = singleTableOrderPlan;
92    }
93
94    public void setQueryLevelOrderPlans(_Order queryLevelOrderPlan) throws DException {
95     this.queryLevelOrderPlan = queryLevelOrderPlan;
96   }
97
98   public _Order getQueryLevelOrderPlans() throws DException {
99     return queryLevelOrderPlan;
100   }
101
102
103 }
104
Popular Tags