2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.md.sal.dom.xsql;
10 import java.io.DataInputStream;
11 import java.io.DataOutputStream;
12 import java.io.FileOutputStream;
13 import java.io.InputStream;
14 import java.io.ObjectInputStream;
15 import java.io.ObjectOutputStream;
16 import java.io.Serializable;
17 import java.lang.reflect.InvocationHandler;
18 import java.lang.reflect.Method;
19 import java.lang.reflect.ParameterizedType;
20 import java.lang.reflect.Proxy;
21 import java.lang.reflect.Type;
22 import java.sql.Connection;
23 import java.sql.DatabaseMetaData;
24 import java.sql.ResultSet;
25 import java.sql.RowIdLifetime;
26 import java.sql.SQLException;
27 import java.util.ArrayList;
28 import java.util.HashMap;
29 import java.util.HashSet;
30 import java.util.List;
33 import org.opendaylight.yangtools.yang.model.api.Module;
34 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
36 * @author Sharon Aicler(saichler@gmail.com)
39 * To be removed in Nitrogen
42 public class XSQLBluePrint implements DatabaseMetaData, Serializable {
44 private static final long serialVersionUID = 1L;
46 public static final String CACHE_FILE_NAME = "./BluePrintCache.dat";
48 private final Map<String, XSQLBluePrintNode> tableNameToBluePrint = new HashMap<>();
49 private final Map<String, Map<String, XSQLBluePrintNode>> odlNameToBluePrint = new HashMap<>();
51 private final boolean cacheLoadedSuccessfuly = false;
52 private DatabaseMetaData myProxy = null;
54 public static final String replaceAll(final String source, final String toReplace,
55 final String withThis) {
56 int index = source.indexOf(toReplace);
58 StringBuffer result = new StringBuffer();
60 result.append(source.substring(index2, index));
61 result.append(withThis);
62 index2 = index + toReplace.length();
63 index = source.indexOf(toReplace, index2);
65 if (index2 < source.length()) {
66 result.append(source.substring(index2));
68 return result.toString();
76 ObjectOutputStream out = null;
78 out = new ObjectOutputStream(new DataOutputStream(
79 new FileOutputStream(CACHE_FILE_NAME)));
80 out.writeObject(this);
81 } catch (Exception err) {
82 err.printStackTrace();
86 } catch (Exception err) {
91 static XSQLBluePrint create(final SchemaContext context) {
92 final XSQLBluePrint ret = new XSQLBluePrint();
93 for (Module m : context.getModules()) {
94 XSQLODLUtils.createOpenDaylightCache(ret, m);
100 public static XSQLBluePrint load(final InputStream ins) {
101 ObjectInputStream in = null;
103 in = new ObjectInputStream(new DataInputStream(ins));
104 return (XSQLBluePrint) in.readObject();
105 } catch (Exception err) {
106 err.printStackTrace();
110 } catch (Exception err) {
116 private class NQLBluePrintProxy implements InvocationHandler {
118 public Object invoke(final Object proxy, final Method method, final Object[] args)
120 System.out.println("Method " + method);
121 return method.invoke(XSQLBluePrint.this, args);
125 public DatabaseMetaData getProxy() {
126 if (myProxy == null) {
128 myProxy = (DatabaseMetaData) Proxy.newProxyInstance(getClass()
130 new Class[] { DatabaseMetaData.class },
131 new NQLBluePrintProxy());
132 } catch (Exception err) {
133 err.printStackTrace();
139 public XSQLBluePrintNode[] getBluePrintNodeByODLTableName(
140 final String odlTableName) {
141 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint
146 return map.values().toArray(new XSQLBluePrintNode[map.size()]);
149 public XSQLBluePrintNode getBluePrintNodeByTableName(String tableName) {
150 if (tableName.indexOf(".") != -1) {
151 tableName = tableName.substring(tableName.lastIndexOf(".") + 1);
154 XSQLBluePrintNode node = tableNameToBluePrint.get(tableName);
160 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
161 if (n.getBluePrintNodeName().endsWith(tableName)) {
166 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
167 if (n.getBluePrintNodeName().toLowerCase()
168 .endsWith(tableName.toLowerCase())) {
173 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
174 if (n.getBluePrintNodeName().toLowerCase()
175 .equals(tableName.toLowerCase())) {
180 for (XSQLBluePrintNode n : tableNameToBluePrint.values()) {
181 if (n.getBluePrintNodeName().toLowerCase()
182 .indexOf(tableName.toLowerCase()) != -1) {
189 public boolean isCacheLoaded() {
190 return cacheLoadedSuccessfuly;
193 private static Map<Class<?>, Set<Class<?>>> superClassMap = new HashMap<>();
195 public static Set<Class<?>> getInheritance(final Class<?> myObjectClass,
196 final Class<?> returnType) {
198 if (returnType != null && myObjectClass.equals(returnType)) {
199 return new HashSet<>();
201 Set<Class<?>> result = superClassMap.get(myObjectClass);
202 if (result != null) {
205 result = new HashSet<>();
206 superClassMap.put(myObjectClass, result);
207 if (returnType != null) {
208 if (!returnType.equals(myObjectClass)) {
209 Class<?> mySuperClass = myObjectClass.getSuperclass();
210 while (mySuperClass != null) {
211 result.add(mySuperClass);
212 mySuperClass = mySuperClass.getSuperclass();
214 result.addAll(collectInterfaces(myObjectClass));
220 public static Set<Class<?>> collectInterfaces(final Class<?> cls) {
221 Set<Class<?>> result = new HashSet<>();
222 Class<?> myInterfaces[] = cls.getInterfaces();
223 if (myInterfaces != null) {
224 for (Class<?> in : myInterfaces) {
226 result.addAll(collectInterfaces(in));
232 public XSQLBluePrintNode addToBluePrintCache(final XSQLBluePrintNode blNode,final XSQLBluePrintNode parent) {
233 XSQLBluePrintNode existingNode = this.tableNameToBluePrint.get(blNode.getBluePrintNodeName());
234 if(existingNode!=null){
235 existingNode.mergeAugmentation(blNode);
238 this.tableNameToBluePrint.put(blNode.getBluePrintNodeName(), blNode);
239 Map<String, XSQLBluePrintNode> map = this.odlNameToBluePrint.get(blNode.getODLTableName());
241 map = new HashMap<>();
242 this.odlNameToBluePrint.put(blNode.getODLTableName(), map);
244 map.put(blNode.getBluePrintNodeName(), blNode);
246 parent.addChild(blNode);
252 public Class<?> getGenericType(final ParameterizedType type) {
253 Type[] typeArguments = type.getActualTypeArguments();
254 for (Type typeArgument : typeArguments) {
255 if (typeArgument instanceof ParameterizedType) {
256 ParameterizedType pType = (ParameterizedType) typeArgument;
257 return (Class<?>) pType.getRawType();
258 } else if (typeArgument instanceof Class) {
259 return (Class<?>) typeArgument;
265 public Class<?> getMethodReturnTypeFromGeneric(final Method m) {
266 Type rType = m.getGenericReturnType();
267 if (rType instanceof ParameterizedType) {
268 return getGenericType((ParameterizedType) rType);
273 public List<String> getAllTableNames() {
274 List<String> names = new ArrayList<>();
275 for (XSQLBluePrintNode n : this.tableNameToBluePrint.values()) {
276 if (!n.isModule() && !n.getColumns().isEmpty()) {
277 names.add(n.getBluePrintNodeName());
284 public List<String> getInterfaceNames(final XSQLBluePrintNode node) {
285 Set<XSQLBluePrintNode> children = node.getChildren();
286 List<String> names = new ArrayList<>();
287 for (XSQLBluePrintNode n : children) {
288 if (!n.isModule() && !n.getColumns().isEmpty()) {
289 names.add(n.toString());
291 names.addAll(getInterfaceNames(n));
297 public boolean allProceduresAreCallable() throws SQLException {
302 public boolean allTablesAreSelectable() throws SQLException {
307 public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
308 // TODO Auto-generated method stub
313 public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
314 // TODO Auto-generated method stub
319 public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
320 // TODO Auto-generated method stub
325 public boolean deletesAreDetected(final int type) throws SQLException {
326 // TODO Auto-generated method stub
331 public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
332 // TODO Auto-generated method stub
337 public ResultSet getAttributes(final String catalog, final String schemaPattern,
338 final String typeNamePattern, final String attributeNamePattern)
339 throws SQLException {
340 // TODO Auto-generated method stub
345 public ResultSet getBestRowIdentifier(final String catalog, final String schema,
346 final String table, final int scope, final boolean nullable) throws SQLException {
347 // TODO Auto-generated method stub
352 public ResultSet getCatalogs() throws SQLException {
353 // TODO Auto-generated method stub
358 public String getCatalogSeparator() throws SQLException {
359 // TODO Auto-generated method stub
364 public String getCatalogTerm() throws SQLException {
365 // TODO Auto-generated method stub
370 public ResultSet getClientInfoProperties() throws SQLException {
371 // TODO Auto-generated method stub
376 public ResultSet getColumnPrivileges(final String catalog, final String schema,
377 final String table, final String columnNamePattern) throws SQLException {
378 // TODO Auto-generated method stub
383 public ResultSet getColumns(final String catalog, final String schemaPattern,
384 final String tableNamePattern, final String columnNamePattern)
385 throws SQLException {
386 // TODO Auto-generated method stub
391 public Connection getConnection() throws SQLException {
392 // TODO Auto-generated method stub
397 public ResultSet getCrossReference(final String parentCatalog,
398 final String parentSchema, final String parentTable, final String foreignCatalog,
399 final String foreignSchema, final String foreignTable) throws SQLException {
400 // TODO Auto-generated method stub
405 public int getDatabaseMajorVersion() throws SQLException {
410 public int getDatabaseMinorVersion() throws SQLException {
411 // TODO Auto-generated method stub
416 public String getDatabaseProductName() throws SQLException {
417 return "OpenDayLight";
421 public String getDatabaseProductVersion() throws SQLException {
426 public int getDefaultTransactionIsolation() throws SQLException {
427 // TODO Auto-generated method stub
432 public int getDriverMajorVersion() {
433 // TODO Auto-generated method stub
438 public int getDriverMinorVersion() {
439 // TODO Auto-generated method stub
444 public String getDriverName() throws SQLException {
445 // TODO Auto-generated method stub
450 public String getDriverVersion() throws SQLException {
451 // TODO Auto-generated method stub
456 public ResultSet getExportedKeys(final String catalog, final String schema, final String table)
457 throws SQLException {
458 // TODO Auto-generated method stub
463 public String getExtraNameCharacters() throws SQLException {
464 // TODO Auto-generated method stub
469 public ResultSet getFunctionColumns(final String catalog, final String schemaPattern,
470 final String functionNamePattern, final String columnNamePattern)
471 throws SQLException {
472 // TODO Auto-generated method stub
477 public ResultSet getFunctions(final String catalog, final String schemaPattern,
478 final String functionNamePattern) throws SQLException {
479 // TODO Auto-generated method stub
484 public String getIdentifierQuoteString() throws SQLException {
485 // TODO Auto-generated method stub
490 public ResultSet getImportedKeys(final String catalog, final String schema, final String table)
491 throws SQLException {
492 // TODO Auto-generated method stub
497 public ResultSet getIndexInfo(final String catalog, final String schema, final String table,
498 final boolean unique, final boolean approximate) throws SQLException {
499 // TODO Auto-generated method stub
504 public int getJDBCMajorVersion() throws SQLException {
505 // TODO Auto-generated method stub
510 public int getJDBCMinorVersion() throws SQLException {
511 // TODO Auto-generated method stub
516 public int getMaxBinaryLiteralLength() throws SQLException {
517 // TODO Auto-generated method stub
522 public int getMaxCatalogNameLength() throws SQLException {
523 // TODO Auto-generated method stub
528 public int getMaxCharLiteralLength() throws SQLException {
529 // TODO Auto-generated method stub
534 public int getMaxColumnNameLength() throws SQLException {
535 // TODO Auto-generated method stub
540 public int getMaxColumnsInGroupBy() throws SQLException {
541 // TODO Auto-generated method stub
546 public int getMaxColumnsInIndex() throws SQLException {
547 // TODO Auto-generated method stub
552 public int getMaxColumnsInOrderBy() throws SQLException {
553 // TODO Auto-generated method stub
558 public int getMaxColumnsInSelect() throws SQLException {
559 // TODO Auto-generated method stub
564 public int getMaxColumnsInTable() throws SQLException {
565 // TODO Auto-generated method stub
570 public int getMaxConnections() throws SQLException {
571 // TODO Auto-generated method stub
576 public int getMaxCursorNameLength() throws SQLException {
577 // TODO Auto-generated method stub
582 public int getMaxIndexLength() throws SQLException {
583 // TODO Auto-generated method stub
588 public int getMaxProcedureNameLength() throws SQLException {
589 // TODO Auto-generated method stub
594 public int getMaxRowSize() throws SQLException {
595 // TODO Auto-generated method stub
600 public int getMaxSchemaNameLength() throws SQLException {
601 // TODO Auto-generated method stub
606 public int getMaxStatementLength() throws SQLException {
607 // TODO Auto-generated method stub
612 public int getMaxStatements() throws SQLException {
613 // TODO Auto-generated method stub
618 public int getMaxTableNameLength() throws SQLException {
619 // TODO Auto-generated method stub
624 public int getMaxTablesInSelect() throws SQLException {
625 // TODO Auto-generated method stub
630 public int getMaxUserNameLength() throws SQLException {
631 // TODO Auto-generated method stub
636 public String getNumericFunctions() throws SQLException {
637 // TODO Auto-generated method stub
642 public ResultSet getPrimaryKeys(final String catalog, final String schema, final String table)
643 throws SQLException {
644 // TODO Auto-generated method stub
649 public ResultSet getProcedureColumns(final String catalog, final String schemaPattern,
650 final String procedureNamePattern, final String columnNamePattern)
651 throws SQLException {
652 // TODO Auto-generated method stub
657 public ResultSet getProcedures(final String catalog, final String schemaPattern,
658 final String procedureNamePattern) throws SQLException {
659 // TODO Auto-generated method stub
664 public String getProcedureTerm() throws SQLException {
665 // TODO Auto-generated method stub
670 public int getResultSetHoldability() throws SQLException {
671 // TODO Auto-generated method stub
676 public RowIdLifetime getRowIdLifetime() throws SQLException {
677 // TODO Auto-generated method stub
682 public ResultSet getSchemas() throws SQLException {
683 // TODO Auto-generated method stub
688 public ResultSet getSchemas(final String catalog, final String schemaPattern)
689 throws SQLException {
690 // TODO Auto-generated method stub
695 public String getSchemaTerm() throws SQLException {
696 // TODO Auto-generated method stub
701 public String getSearchStringEscape() throws SQLException {
702 // TODO Auto-generated method stub
707 public String getSQLKeywords() throws SQLException {
708 // TODO Auto-generated method stub
713 public int getSQLStateType() throws SQLException {
714 // TODO Auto-generated method stub
719 public String getStringFunctions() throws SQLException {
720 // TODO Auto-generated method stub
725 public ResultSet getSuperTables(final String catalog, final String schemaPattern,
726 final String tableNamePattern) throws SQLException {
727 // TODO Auto-generated method stub
732 public ResultSet getSuperTypes(final String catalog, final String schemaPattern,
733 final String typeNamePattern) throws SQLException {
734 // TODO Auto-generated method stub
739 public String getSystemFunctions() throws SQLException {
740 // TODO Auto-generated method stub
745 public ResultSet getTablePrivileges(final String catalog, final String schemaPattern,
746 final String tableNamePattern) throws SQLException {
747 // TODO Auto-generated method stub
752 public ResultSet getTables(final String catalog, final String schemaPattern,
753 final String tableNamePattern, final String[] types) throws SQLException {
754 return new TablesResultSet(this);
758 public ResultSet getTableTypes() throws SQLException {
759 // TODO Auto-generated method stub
764 public String getTimeDateFunctions() throws SQLException {
765 // TODO Auto-generated method stub
770 public ResultSet getTypeInfo() throws SQLException {
771 // TODO Auto-generated method stub
776 public ResultSet getUDTs(final String catalog, final String schemaPattern,
777 final String typeNamePattern, final int[] types) throws SQLException {
778 // TODO Auto-generated method stub
783 public String getURL() throws SQLException {
784 // TODO Auto-generated method stub
789 public String getUserName() throws SQLException {
790 // TODO Auto-generated method stub
795 public ResultSet getVersionColumns(final String catalog, final String schema,
796 final String table) throws SQLException {
797 // TODO Auto-generated method stub
802 public boolean insertsAreDetected(final int type) throws SQLException {
803 // TODO Auto-generated method stub
808 public boolean isCatalogAtStart() throws SQLException {
809 // TODO Auto-generated method stub
814 public boolean isReadOnly() throws SQLException {
815 // TODO Auto-generated method stub
820 public boolean locatorsUpdateCopy() throws SQLException {
821 // TODO Auto-generated method stub
826 public boolean nullPlusNonNullIsNull() throws SQLException {
827 // TODO Auto-generated method stub
832 public boolean nullsAreSortedAtEnd() throws SQLException {
833 // TODO Auto-generated method stub
838 public boolean nullsAreSortedAtStart() throws SQLException {
839 // TODO Auto-generated method stub
844 public boolean nullsAreSortedHigh() throws SQLException {
845 // TODO Auto-generated method stub
850 public boolean nullsAreSortedLow() throws SQLException {
851 // TODO Auto-generated method stub
856 public boolean othersDeletesAreVisible(final int type) throws SQLException {
857 // TODO Auto-generated method stub
862 public boolean othersInsertsAreVisible(final int type) throws SQLException {
863 // TODO Auto-generated method stub
868 public boolean othersUpdatesAreVisible(final int type) throws SQLException {
869 // TODO Auto-generated method stub
874 public boolean ownDeletesAreVisible(final int type) throws SQLException {
875 // TODO Auto-generated method stub
880 public boolean ownInsertsAreVisible(final int type) throws SQLException {
881 // TODO Auto-generated method stub
886 public boolean ownUpdatesAreVisible(final int type) throws SQLException {
887 // TODO Auto-generated method stub
892 public boolean storesLowerCaseIdentifiers() throws SQLException {
893 // TODO Auto-generated method stub
898 public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
899 // TODO Auto-generated method stub
904 public boolean storesMixedCaseIdentifiers() throws SQLException {
905 // TODO Auto-generated method stub
910 public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
911 // TODO Auto-generated method stub
916 public boolean storesUpperCaseIdentifiers() throws SQLException {
917 // TODO Auto-generated method stub
922 public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
923 // TODO Auto-generated method stub
928 public boolean supportsAlterTableWithAddColumn() throws SQLException {
929 // TODO Auto-generated method stub
934 public boolean supportsAlterTableWithDropColumn() throws SQLException {
935 // TODO Auto-generated method stub
940 public boolean supportsANSI92EntryLevelSQL() throws SQLException {
941 // TODO Auto-generated method stub
946 public boolean supportsANSI92FullSQL() throws SQLException {
947 // TODO Auto-generated method stub
952 public boolean supportsANSI92IntermediateSQL() throws SQLException {
953 // TODO Auto-generated method stub
958 public boolean supportsBatchUpdates() throws SQLException {
959 // TODO Auto-generated method stub
964 public boolean supportsCatalogsInDataManipulation() throws SQLException {
965 // TODO Auto-generated method stub
970 public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
971 // TODO Auto-generated method stub
976 public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
977 // TODO Auto-generated method stub
982 public boolean supportsCatalogsInProcedureCalls() throws SQLException {
983 // TODO Auto-generated method stub
988 public boolean supportsCatalogsInTableDefinitions() throws SQLException {
989 // TODO Auto-generated method stub
994 public boolean supportsColumnAliasing() throws SQLException {
995 // TODO Auto-generated method stub
1000 public boolean supportsConvert() throws SQLException {
1001 // TODO Auto-generated method stub
1006 public boolean supportsConvert(final int fromType, final int toType)
1007 throws SQLException {
1008 // TODO Auto-generated method stub
1013 public boolean supportsCoreSQLGrammar() throws SQLException {
1014 // TODO Auto-generated method stub
1019 public boolean supportsCorrelatedSubqueries() throws SQLException {
1020 // TODO Auto-generated method stub
1025 public boolean supportsDataDefinitionAndDataManipulationTransactions()
1026 throws SQLException {
1027 // TODO Auto-generated method stub
1032 public boolean supportsDataManipulationTransactionsOnly()
1033 throws SQLException {
1034 // TODO Auto-generated method stub
1039 public boolean supportsDifferentTableCorrelationNames() throws SQLException {
1040 // TODO Auto-generated method stub
1045 public boolean supportsExpressionsInOrderBy() throws SQLException {
1046 // TODO Auto-generated method stub
1051 public boolean supportsExtendedSQLGrammar() throws SQLException {
1052 // TODO Auto-generated method stub
1057 public boolean supportsFullOuterJoins() throws SQLException {
1058 // TODO Auto-generated method stub
1063 public boolean supportsGetGeneratedKeys() throws SQLException {
1064 // TODO Auto-generated method stub
1069 public boolean supportsGroupBy() throws SQLException {
1070 // TODO Auto-generated method stub
1075 public boolean supportsGroupByBeyondSelect() throws SQLException {
1076 // TODO Auto-generated method stub
1081 public boolean supportsGroupByUnrelated() throws SQLException {
1082 // TODO Auto-generated method stub
1087 public boolean supportsIntegrityEnhancementFacility() throws SQLException {
1088 // TODO Auto-generated method stub
1093 public boolean supportsLikeEscapeClause() throws SQLException {
1094 // TODO Auto-generated method stub
1099 public boolean supportsLimitedOuterJoins() throws SQLException {
1100 // TODO Auto-generated method stub
1105 public boolean supportsMinimumSQLGrammar() throws SQLException {
1106 // TODO Auto-generated method stub
1111 public boolean supportsMixedCaseIdentifiers() throws SQLException {
1112 // TODO Auto-generated method stub
1117 public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
1118 // TODO Auto-generated method stub
1123 public boolean supportsMultipleOpenResults() throws SQLException {
1124 // TODO Auto-generated method stub
1129 public boolean supportsMultipleResultSets() throws SQLException {
1130 // TODO Auto-generated method stub
1135 public boolean supportsMultipleTransactions() throws SQLException {
1136 // TODO Auto-generated method stub
1141 public boolean supportsNamedParameters() throws SQLException {
1142 // TODO Auto-generated method stub
1147 public boolean supportsNonNullableColumns() throws SQLException {
1148 // TODO Auto-generated method stub
1153 public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
1154 // TODO Auto-generated method stub
1159 public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
1160 // TODO Auto-generated method stub
1165 public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
1166 // TODO Auto-generated method stub
1171 public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
1172 // TODO Auto-generated method stub
1177 public boolean supportsOrderByUnrelated() throws SQLException {
1178 // TODO Auto-generated method stub
1183 public boolean supportsOuterJoins() throws SQLException {
1184 // TODO Auto-generated method stub
1189 public boolean supportsPositionedDelete() throws SQLException {
1190 // TODO Auto-generated method stub
1195 public boolean supportsPositionedUpdate() throws SQLException {
1196 // TODO Auto-generated method stub
1201 public boolean supportsResultSetConcurrency(final int type, final int concurrency)
1202 throws SQLException {
1203 // TODO Auto-generated method stub
1208 public boolean supportsResultSetHoldability(final int holdability)
1209 throws SQLException {
1210 // TODO Auto-generated method stub
1215 public boolean supportsResultSetType(final int type) throws SQLException {
1216 // TODO Auto-generated method stub
1221 public boolean supportsSavepoints() throws SQLException {
1222 // TODO Auto-generated method stub
1227 public boolean supportsSchemasInDataManipulation() throws SQLException {
1228 // TODO Auto-generated method stub
1233 public boolean supportsSchemasInIndexDefinitions() throws SQLException {
1234 // TODO Auto-generated method stub
1239 public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
1240 // TODO Auto-generated method stub
1245 public boolean supportsSchemasInProcedureCalls() throws SQLException {
1246 // TODO Auto-generated method stub
1251 public boolean supportsSchemasInTableDefinitions() throws SQLException {
1252 // TODO Auto-generated method stub
1257 public boolean supportsSelectForUpdate() throws SQLException {
1258 // TODO Auto-generated method stub
1263 public boolean supportsStatementPooling() throws SQLException {
1264 // TODO Auto-generated method stub
1269 public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException {
1270 // TODO Auto-generated method stub
1275 public boolean supportsStoredProcedures() throws SQLException {
1276 // TODO Auto-generated method stub
1281 public boolean supportsSubqueriesInComparisons() throws SQLException {
1282 // TODO Auto-generated method stub
1287 public boolean supportsSubqueriesInExists() throws SQLException {
1288 // TODO Auto-generated method stub
1293 public boolean supportsSubqueriesInIns() throws SQLException {
1294 // TODO Auto-generated method stub
1299 public boolean supportsSubqueriesInQuantifieds() throws SQLException {
1300 // TODO Auto-generated method stub
1305 public boolean supportsTableCorrelationNames() throws SQLException {
1306 // TODO Auto-generated method stub
1311 public boolean supportsTransactionIsolationLevel(final int level)
1312 throws SQLException {
1313 // TODO Auto-generated method stub
1318 public boolean supportsTransactions() throws SQLException {
1319 // TODO Auto-generated method stub
1324 public boolean supportsUnion() throws SQLException {
1325 // TODO Auto-generated method stub
1330 public boolean supportsUnionAll() throws SQLException {
1331 // TODO Auto-generated method stub
1336 public boolean updatesAreDetected(final int type) throws SQLException {
1337 // TODO Auto-generated method stub
1342 public boolean usesLocalFilePerTable() throws SQLException {
1343 // TODO Auto-generated method stub
1348 public boolean usesLocalFiles() throws SQLException {
1349 // TODO Auto-generated method stub
1354 public boolean isWrapperFor(final Class<?> iface) throws SQLException {
1355 // TODO Auto-generated method stub
1360 public <T> T unwrap(final Class<T> iface) throws SQLException {
1361 // TODO Auto-generated method stub
1366 public ResultSet getPseudoColumns(final String catalog, final String schemaPattern,
1367 final String tableNamePattern, final String columnNamePattern)
1368 throws SQLException {
1369 // TODO Auto-generated method stub
1374 public boolean generatedKeyAlwaysReturned() throws SQLException {
1375 // TODO Auto-generated method stub