KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > dql > plan > table > ViewObject


1 package com.daffodilwoods.daffodildb.server.sql99.dql.plan.table;
2
3 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*;
4 import com.daffodilwoods.daffodildb.server.serversystem.*;
5 import com.daffodilwoods.daffodildb.server.sql99.common.*;
6 import com.daffodilwoods.daffodildb.server.sql99.dql.queryexpression.*;
7 import com.daffodilwoods.database.resource.*;
8
9 /**
10  * It represents the definition of view.
11  * <p>Title: </p>
12  * <p>Description: </p>
13  * <p>Copyright: Copyright (c) 2003</p>
14  * <p>Company: </p>
15  * @author unascribed
16  * @version 1.0
17  */

18
19 public class ViewObject implements _ViewObject {
20
21    /**
22     * Represents the mapping of view's column name vs column used in view
23     * definition.
24     */

25
26    private Object JavaDoc[][] mappingOfColumnAndCD;
27
28    /**
29     * Represents the definition of view.
30     */

31
32    private queryexpression queryExpression;
33
34    public ViewObject(queryexpression queryExpressionPassed) {
35       queryExpression = queryExpressionPassed;
36    }
37
38    public ViewObject(queryexpression queryExpressionPassed, Object JavaDoc[][] mappingOfColumnAndCD0) {
39       this(queryExpressionPassed);
40       mappingOfColumnAndCD = mappingOfColumnAndCD0;
41    }
42
43    /**
44     * It is needed to get mapping of passed column name vs corresponding column
45     * used in view definition.
46     * @param viewColumnNames
47     * @return
48     * @throws DException
49     */

50
51    public Object JavaDoc[][] getMappingOfColumnsAndColumnDetails(String JavaDoc[] viewColumnNames) throws DException {
52       if (mappingOfColumnAndCD != null) {
53          return mappingOfColumnAndCD;
54       }
55       int length = viewColumnNames.length;
56       ColumnDetails[] selectColumns = queryExpression.getSelectedColumns();
57       mappingOfColumnAndCD = new Object JavaDoc[length][2];
58       for (int i = 0; i < length; ++i) {
59          mappingOfColumnAndCD[i][0] = viewColumnNames[i];
60          mappingOfColumnAndCD[i][1] = selectColumns[i];
61       }
62       return mappingOfColumnAndCD;
63    }
64
65    /**
66     * Returns the mapping of view's column name vs column used in view
67     * definition.
68     * @return
69     * @throws DException
70     */

71
72    public Object JavaDoc[][] getMappingOfColumnsAndColumnDetails() throws DException {
73       return mappingOfColumnAndCD;
74    }
75
76    /**
77     * Returns the object representing view definition.
78     * @return
79     */

80
81    public queryexpression getQueryExpression() {
82       return queryExpression;
83    }
84
85    /**
86     * Return the characteristics for Foriegn Constraints corresponding to passed
87     * column.
88     * @param columnName
89     * @param serverSession
90     * @param columnCharacteristics
91     * @return
92     * @throws DException
93     */

94
95    public Object JavaDoc[] getForeignConstraintCharacteritics(String JavaDoc columnName, _ServerSession serverSession, _ColumnCharacteristics columnCharacteristics) throws DException {
96       if (mappingOfColumnAndCD == null) {
97          mappingOfColumnAndCD = getMappingOfColumnsAndColumnDetails(columnCharacteristics.getColumnNames());
98       }
99       for (int i = 0, length = mappingOfColumnAndCD.length; i < length; i++) {
100          if ( ( (String JavaDoc) mappingOfColumnAndCD[i][0]).equalsIgnoreCase(columnName)) {
101             ColumnDetails column = (ColumnDetails) mappingOfColumnAndCD[i][1];
102             _ColumnCharacteristics columnCHS = column.getTable().cc;
103             return serverSession.getForeignConstraintCharacteritics(column.getTable().getQualifiedIdentifier(), column.getAppropriateColumn());
104          }
105       }
106       throw new DException("DSE3515", new Object JavaDoc[] {columnName});
107    }
108 }
109
Popular Tags