01: /*
02:
03: Derby - Class org.apache.derby.iapi.sql.execute.ExecRow
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to you under the Apache License, Version 2.0
09: (the "License"); you may not use this file except in compliance with
10: the License. You may obtain a copy of the License at
11:
12: http://www.apache.org/licenses/LICENSE-2.0
13:
14: Unless required by applicable law or agreed to in writing, software
15: distributed under the License is distributed on an "AS IS" BASIS,
16: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: See the License for the specific language governing permissions and
18: limitations under the License.
19:
20: */
21:
22: package org.apache.derby.iapi.sql.execute;
23:
24: import org.apache.derby.iapi.error.StandardException;
25:
26: import org.apache.derby.iapi.types.DataValueDescriptor;
27:
28: import org.apache.derby.iapi.sql.Row;
29:
30: import org.apache.derby.iapi.services.io.Storable;
31:
32: import org.apache.derby.iapi.services.io.FormatableBitSet;
33:
34: /**
35: * Execution sees this extension of Row that provides connectivity
36: * to the Storage row interface and additional methods for manipulating
37: * Rows in execution's ResultSets.
38: *
39: * @author ames
40: */
41: public interface ExecRow extends Row {
42:
43: /**
44: * Clone the Row and its contents.
45: *
46: *
47: * @return Row A clone of the Row and its contents.
48: */
49: ExecRow getClone();
50:
51: /**
52: * Clone the Row. The cloned row will contain clones of the
53: * specified columns and the same object as the original row
54: * for the other columns.
55: *
56: * @param clonedCols 1-based FormatableBitSet representing the columns to clone.
57: *
58: * @return Row A clone of the Row and its contents.
59: */
60: ExecRow getClone(FormatableBitSet clonedCols);
61:
62: /**
63: * Get a new row with the same columns type as this one, containing nulls.
64: *
65: */
66: ExecRow getNewNullRow();
67:
68: /**
69: * Get a clone of a DataValueDescriptor from an ExecRow.
70: *
71: * @param columnPosition (1 based)
72: */
73: DataValueDescriptor cloneColumn(int columnPosition);
74:
75: /**
76: Get a clone of the array form of the row that Access expects.
77:
78: @see ExecRow#getRowArray
79: */
80: public DataValueDescriptor[] getRowArrayClone();
81:
82: /**
83: Return the array of objects that the store needs.
84: */
85: public DataValueDescriptor[] getRowArray();
86:
87: /**
88: Set the array of objects
89: */
90: public void setRowArray(Storable[] rowArray);
91:
92: // temp overload
93: public void setRowArray(DataValueDescriptor[] rowArray);
94:
95: /**
96: Get a new DataValueDescriptor[]
97: */
98: public void getNewObjectArray();
99: }
|