// // Initialize the hashtable of methods which are allowed to raise // SQLFeatureNotSupportedException. // private void initializeExcludableMap(HashSet<String> vanishedMethodList) throws Exception { excludableMap = new Hashtable<Class, HashSet<Method>>(); int count = rawExcludables.length; for (int i = 0; i < count; i++) { Exclusions exclusions = rawExcludables[i]; Class<?> iface = exclusions.getInterface(); MD[] mds = exclusions.getExcludedMethods(); int exclusionCount = mds.length; HashSet<Method> excludedMethodSet = new HashSet<Method>(); for (int j = 0; j < exclusionCount; j++) { MD md = mds[j]; if (!md.requiredAtThisLevel()) { continue; } // // If we are strictly enforcing the JDBC standard, // then expose the mandatory methods which we know Derby // doesn't implement. // if (STRICT_ENFORCEMENT && !md.isOptional()) { continue; } Method method = null; try { method = iface.getMethod(md.getMethodName(), md.getArgTypes()); } catch (NoSuchMethodException e) { } if (method == null) { vanishedMethodList.add( "Method has vanished from SQL interface: " + iface.getName() + "." + md); } excludedMethodSet.add(method); } excludableMap.put(iface, excludedMethodSet); } }