private ObjectNameFilter getFilter(WbProperties props, String key, String prop) { String filterList = props.getProperty(PROP_PREFIX + key + prop); if (StringUtil.isBlank(filterList)) return null; boolean inclusion = props.getBoolProperty(PROP_PREFIX + key + prop + ".include", false); ObjectNameFilter filter = new ObjectNameFilter(); filter.setExpressionList(filterList); filter.setInclusionFilter(inclusion); return filter; }
private ConnectionProfile readProfile(File baseDir, String key, WbProperties props) { key = "." + key; String url = props.getProperty(PROP_PREFIX + key + PROP_URL, null); String tags = props.getProperty(PROP_PREFIX + key + PROP_TAGS, null); String name = props.getProperty(PROP_PREFIX + key + PROP_NAME, null); String driverClass = props.getProperty(PROP_PREFIX + key + PROP_DRIVERCLASS, null); String driverJar = props.getProperty(PROP_PREFIX + key + PROP_DRIVERJAR, null); String driverName = props.getProperty(PROP_PREFIX + key + PROP_DRIVERNAME, null); String group = props.getProperty(PROP_PREFIX + key + PROP_GROUP, null); String user = props.getProperty(PROP_PREFIX + key + PROP_USERNAME, null); String pwd = props.getProperty(PROP_PREFIX + key + PROP_PWD, null); String icon = props.getProperty(PROP_PREFIX + key + PROP_ICON, null); String wksp = props.getProperty(PROP_PREFIX + key + PROP_WORKSPACE, null); String delimiter = props.getProperty(PROP_PREFIX + key + PROP_ALT_DELIMITER, null); String macroFile = props.getProperty(PROP_PREFIX + key + PROP_MACROFILE, null); String postConnect = props.getProperty(PROP_PREFIX + key + PROP_SCRIPT_CONNECT, null); String preDisconnect = props.getProperty(PROP_PREFIX + key + PROP_SCRIPT_DISCONNECT, null); String idleScript = props.getProperty(PROP_PREFIX + key + PROP_SCRIPT_IDLE, null); String xmlProps = props.getProperty(PROP_PREFIX + key + PROP_CONN_PROPS, null); String colorValue = props.getProperty(PROP_PREFIX + key + PROP_INFO_COLOR, null); Properties connProps = toProperties(xmlProps); Color color = Settings.stringToColor(colorValue); boolean autoCommit = props.getBoolProperty(PROP_PREFIX + key + PROP_AUTOCOMMMIT, false); boolean storeCache = props.getBoolProperty(PROP_PREFIX + key + PROP_STORECACHE, false); boolean storePwd = props.getBoolProperty(PROP_PREFIX + key + PROP_STORE_PWD, true); boolean rollback = props.getBoolProperty(PROP_PREFIX + key + PROP_ROLLBACK_DISCONNECT, false); boolean seperateConnection = props.getBoolProperty(PROP_PREFIX + key + PROP_SEPARATECONNECTION, false); boolean ignoreDropError = props.getBoolProperty(PROP_PREFIX + key + PROP_IGNOREDROPERRORS, false); boolean trimCharData = props.getBoolProperty(PROP_PREFIX + key + PROP_TRIMCHARDATA, false); boolean sysDBA = props.getBoolProperty(PROP_PREFIX + key + PROP_ORACLESYSDBA, false); boolean detectOpen = props.getBoolProperty(PROP_PREFIX + key + PROP_DETECTOPENTRANSACTION, false); boolean readonly = props.getBoolProperty(PROP_PREFIX + key + PROP_READONLY, false); boolean preventNoWhere = props.getBoolProperty(PROP_PREFIX + key + PROP_PREVENT_NO_WHERE, false); boolean confirmUpdates = props.getBoolProperty(PROP_PREFIX + key + PROP_CONFIRM_UPDATES, false); boolean promptUsername = props.getBoolProperty(PROP_PREFIX + key + PROP_PROMPTUSERNAME, false); boolean emptyStringIsNull = props.getBoolProperty(PROP_PREFIX + key + PROP_EMPTY_STRING_IS_NULL, false); boolean includeNullInInsert = props.getBoolProperty(PROP_PREFIX + key + PROP_INCLUDE_NULL_ON_INSERT, true); boolean removeComments = props.getBoolProperty(PROP_PREFIX + key + PROP_REMOVE_COMMENTS, false); boolean rememberExplorerSchema = props.getBoolProperty(PROP_PREFIX + key + PROP_REMEMEMBER_SCHEMA, false); boolean hideWarnings = props.getBoolProperty(PROP_PREFIX + key + PROP_HIDE_WARNINGS, false); boolean copyProps = props.getBoolProperty(PROP_PREFIX + key + PROP_COPY_PROPS, false); int idleTime = props.getIntProperty(PROP_PREFIX + key + PROP_IDLE_TIME, -1); int size = props.getIntProperty(PROP_PREFIX + key + PROP_FETCHSIZE, -1); int timeOut = props.getIntProperty(PROP_PREFIX + key + PROP_CONNECTION_TIMEOUT, -1); Integer fetchSize = null; if (size >= 0) { fetchSize = Integer.valueOf(size); } Integer connectionTimeOut = null; if (timeOut > 0) { connectionTimeOut = Integer.valueOf(timeOut); } // if a driver jar was explicitely specified, that jar should be used // regardless of any registered driver that might be referenced through driverName if (StringUtil.isNonEmpty(driverJar)) { WbFile drvFile = new WbFile(driverJar); if (!drvFile.isAbsolute()) { drvFile = new WbFile(baseDir, driverJar); LogMgr.logDebug( "IniProfileStorage.readProfile()", "Using full path: " + drvFile.getFullPath() + " for driver jar " + driverJar + " from profile " + name); driverJar = drvFile.getFullPath(); } else { driverJar = drvFile.getFullPath(); } DbDriver drv = ConnectionMgr.getInstance().registerDriver(driverClass, driverJar); driverName = drv.getName(); } ObjectNameFilter schemaFilter = getSchemaFilter(props, key); ObjectNameFilter catalogFilter = getCatalogFilter(props, key); ConnectionProfile profile = new ConnectionProfile(); profile.setName(name); profile.setUsername(user); profile.setUrl(url); profile.setInputPassword(pwd); profile.setDriverclass(driverClass); profile.setDriverName(driverName); profile.setGroup(group); profile.setTagList(tags); profile.setDefaultFetchSize(fetchSize); profile.setOracleSysDBA(sysDBA); profile.setReadOnly(readonly); profile.setWorkspaceFile(wksp); profile.setIcon(icon); profile.setConnectionTimeout(connectionTimeOut); profile.setRollbackBeforeDisconnect(rollback); profile.setUseSeparateConnectionPerTab(seperateConnection); profile.setAlternateDelimiterString(delimiter); profile.setMacroFilename(macroFile); profile.setIgnoreDropErrors(ignoreDropError); profile.setTrimCharData(trimCharData); profile.setDetectOpenTransaction(detectOpen); profile.setPreventDMLWithoutWhere(preventNoWhere); profile.setConfirmUpdates(confirmUpdates); profile.setPromptForUsername(promptUsername); profile.setEmptyStringIsNull(emptyStringIsNull); profile.setIncludeNullInInsert(includeNullInInsert); profile.setRemoveComments(removeComments); profile.setStoreExplorerSchema(rememberExplorerSchema); profile.setHideWarnings(hideWarnings); profile.setStoreCacheLocally(storeCache); profile.setAutocommit(autoCommit); profile.setPreDisconnectScript(preDisconnect); profile.setPostConnectScript(postConnect); profile.setIdleScript(idleScript); profile.setIdleTime(idleTime); profile.setStorePassword(storePwd); profile.setCopyExtendedPropsToSystem(copyProps); profile.setConnectionProperties(connProps); profile.setInfoDisplayColor(color); profile.setSchemaFilter(schemaFilter); profile.setCatalogFilter(catalogFilter); return profile; }