01: /*
02:
03: Derby - Class org.apache.derby.iapi.sql.LanguageFactory
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;
23:
24: import org.apache.derby.iapi.error.StandardException;
25: import org.apache.derby.iapi.services.loader.ClassInspector;
26:
27: /**
28: * Factory interface for the Language.Interface protocol.
29: * This is used via the Database API by users, and is presented
30: * as a System Module (not a service module). That could change,
31: * but for now this is valid for any database.
32: *
33: * @author Jeff Lichtman
34: */
35: public interface LanguageFactory {
36: /**
37: Used to locate this factory by the Monitor basic service.
38: There needs to be a language factory per database.
39: */
40: String MODULE = "org.apache.derby.iapi.sql.LanguageFactory";
41:
42: /**
43: * Get a ParameterValueSet
44: *
45: * @param numParms The number of parameters in the
46: * ParameterValueSet
47: * @param hasReturnParam true if this parameter set
48: * has a return parameter. The return parameter
49: * is always the 1st parameter in the list. It
50: * is due to a callableStatement like this: <i>
51: * ? = CALL myMethod()</i>
52: *
53: * @return A new ParameterValueSet with the given number of parms
54: */
55: ParameterValueSet newParameterValueSet(ClassInspector ci,
56: int numParms, boolean hasReturnParam);
57:
58: /**
59: * Get a new result description from the input result
60: * description. Picks only the columns in the column
61: * array from the inputResultDescription.
62: *
63: * @param inputResultDescription the input rd
64: * @param theCols non null array of ints
65: *
66: * @return ResultDescription the rd
67: */
68: public ResultDescription getResultDescription(
69: ResultDescription inputResultDescription, int[] theCols);
70:
71: /**
72: * Get a new result description
73: *
74: * @param cols an array of col descriptors
75: * @param type the statement type
76: *
77: * @return ResultDescription the rd
78: */
79: public ResultDescription getResultDescription(
80: ResultColumnDescriptor[] cols, String type);
81: }
|