private void searchList( List<DbObject> toSearch, List<String> searchValues, boolean matchAll, boolean ignoreCase, boolean useRegex) { if (monitor != null) { monitor.setMonitorType(RowActionMonitor.MONITOR_PROCESS); } int total = toSearch.size(); int current = 1; for (DbObject object : toSearch) { numSearched++; if (cancelSearch) return; if (monitor != null) { monitor.setCurrentObject(object.getObjectName(), current, total); } try { CharSequence source = null; if (connection.getMetadata().isTableType(object.getObjectType())) { ((TableIdentifier) object).setRetrieveFkSource(true); } ProcedureDefinition def = null; if (object instanceof ProcedureDefinition) { def = (ProcedureDefinition) object; } String key = getObjectKey(object); if (!searchedObjects.contains(key)) { source = object.getSource(connection); if (StringUtil.isBlank(source)) { LogMgr.logWarning( "ObjectSourceSearcher.searchObjects()", "Empty source returned for " + object.toString()); } if (StringUtil.containsWords(source, searchValues, matchAll, ignoreCase, useRegex)) { searchResult.add(object); } searchedObjects.add(key); } } catch (SQLException sql) { LogMgr.logError( "ObjectSourceSearcher.searchObjects()", "Error retrieving object source", sql); } current++; } }
@Override public DataStore getObjectDetails(WbConnection con, DbObject object) { Statement stmt = null; ResultSet rs = null; try { String select = getSelect(object.getSchema(), object.getObjectName()); stmt = con.createStatementForQuery(); rs = stmt.executeQuery(select); DataStore result = new DataStore(rs, true); return result; } catch (Exception e) { LogMgr.logError("DerbyTypeReader.extendObjectList()", "Error retrieving object types", e); return null; } finally { SqlUtil.closeAll(rs, stmt); } }