@Override public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { if (info == null) { info = new Properties(); } else { info = PropertiesUtils.clone(info); } // construct list of driverPropertyInfo objects List<DriverPropertyInfo> driverProps = new LinkedList<DriverPropertyInfo>(); parseURL(url, info); for (String property : JDBCURL.KNOWN_PROPERTIES.keySet()) { DriverPropertyInfo dpi = new DriverPropertyInfo(property, info.getProperty(property)); if (property.equals(TeiidURL.JDBC.VDB_NAME)) { dpi.required = true; } driverProps.add(dpi); } // create an array of DriverPropertyInfo objects DriverPropertyInfo[] propInfo = new DriverPropertyInfo[driverProps.size()]; // copy the elements from the list to the array return driverProps.toArray(propInfo); }
/** * The getPropertyInfo method is intended to allow a generic GUI tool to discover what properties * it should prompt a human for in order to get enough information to connect to a database. * * <p>Note that depending on the values the human has supplied so far, additional values may * become necessary, so it may be necessary to iterate through several calls to getPropertyInfo * * @param url the Url of the database to connect to * @param info a proposed list of tag/value pairs that will be sent on connect open. * @return An array of DriverPropertyInfo objects describing possible properties. This array may * be an empty array if no properties are required * @exception SQLException if a database-access error occurs * @see java.sql.Driver#getPropertyInfo */ public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { if (info == null) { info = new Properties(); } if ((url != null) && url.startsWith(URL_PREFIX)) { // $NON-NLS-1$ info = parseURL(url, info); } DriverPropertyInfo hostProp = new DriverPropertyInfo( HOST_PROPERTY_KEY, //$NON-NLS-1$ info.getProperty(HOST_PROPERTY_KEY)); // $NON-NLS-1$ hostProp.required = true; hostProp.description = Messages.getString("NonRegisteringDriver.3"); // $NON-NLS-1$ DriverPropertyInfo portProp = new DriverPropertyInfo( PORT_PROPERTY_KEY, //$NON-NLS-1$ info.getProperty(PORT_PROPERTY_KEY, "3306")); // $NON-NLS-1$ //$NON-NLS-2$ portProp.required = false; portProp.description = Messages.getString("NonRegisteringDriver.7"); // $NON-NLS-1$ DriverPropertyInfo dbProp = new DriverPropertyInfo( DBNAME_PROPERTY_KEY, //$NON-NLS-1$ info.getProperty(DBNAME_PROPERTY_KEY)); // $NON-NLS-1$ dbProp.required = false; dbProp.description = "Database name"; // $NON-NLS-1$ DriverPropertyInfo userProp = new DriverPropertyInfo( USER_PROPERTY_KEY, //$NON-NLS-1$ info.getProperty(USER_PROPERTY_KEY)); // $NON-NLS-1$ userProp.required = true; userProp.description = Messages.getString("NonRegisteringDriver.13"); // $NON-NLS-1$ DriverPropertyInfo passwordProp = new DriverPropertyInfo( PASSWORD_PROPERTY_KEY, //$NON-NLS-1$ info.getProperty(PASSWORD_PROPERTY_KEY)); // $NON-NLS-1$ passwordProp.required = true; passwordProp.description = Messages.getString("NonRegisteringDriver.16"); // $NON-NLS-1$ DriverPropertyInfo[] dpi = ConnectionPropertiesImpl.exposeAsDriverPropertyInfo(info, 5); dpi[0] = hostProp; dpi[1] = portProp; dpi[2] = dbProp; dpi[3] = userProp; dpi[4] = passwordProp; return dpi; }
public DriverPropertyInfo[] getPropertyInfo(String url, Properties properties) throws SQLException { String as[] = {"true", "false"}; DriverPropertyInfo adriverpropertyinfo[] = new DriverPropertyInfo[6]; DriverPropertyInfo driverpropertyinfo = new DriverPropertyInfo("user", null); driverpropertyinfo.value = properties.getProperty("user"); driverpropertyinfo.required = true; adriverpropertyinfo[0] = driverpropertyinfo; driverpropertyinfo = new DriverPropertyInfo("password", null); driverpropertyinfo.value = properties.getProperty("password"); driverpropertyinfo.required = true; adriverpropertyinfo[1] = driverpropertyinfo; driverpropertyinfo = new DriverPropertyInfo("get_column_name", null); driverpropertyinfo.value = properties.getProperty("get_column_name", "true"); driverpropertyinfo.required = false; driverpropertyinfo.choices = as; adriverpropertyinfo[2] = driverpropertyinfo; driverpropertyinfo = new DriverPropertyInfo("ifexists", null); driverpropertyinfo.value = properties.getProperty("ifexists"); driverpropertyinfo.required = false; driverpropertyinfo.choices = as; adriverpropertyinfo[3] = driverpropertyinfo; driverpropertyinfo = new DriverPropertyInfo("default_schema", null); driverpropertyinfo.value = properties.getProperty("default_schema"); driverpropertyinfo.required = false; driverpropertyinfo.choices = as; adriverpropertyinfo[4] = driverpropertyinfo; driverpropertyinfo = new DriverPropertyInfo("shutdown", null); driverpropertyinfo.value = properties.getProperty("shutdown"); driverpropertyinfo.required = false; driverpropertyinfo.choices = as; adriverpropertyinfo[5] = driverpropertyinfo; return adriverpropertyinfo; }
/** * Gets information about the possible properties for this driver. * * <p>The getPropertyInfo method is intended to allow a generic GUI tool to discover what * properties it should prompt a human for in order to get enough information to connect to a * database. Note that depending on the values the human has supplied so far, additional values * may become necessary, so it may be necessary to iterate though several calls to * getPropertyInfo. * <!-- start release-specific documentation --> * <span class="ReleaseSpecificDocumentation"> <b>HSQLDB-Specific Information:</b> * * <p>HSQLDB 1.7.1 uses the values submitted in info to set the value for each DriverPropertyInfo * object returned. It does not use the default value that it would use for the property if the * value is null. * * <p></span> * <!-- end release-specific documentation --> * * @param url the URL of the database to which to connect * @param info a proposed list of tag/value pairs that will be sent on connect open * @return an array of DriverPropertyInfo objects describing possible properties. This array may * be an empty array if no properties are required. */ public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) { String[] choices = new String[] {"true", "false"}; DriverPropertyInfo pinfo[] = new DriverPropertyInfo[4]; DriverPropertyInfo p; p = new DriverPropertyInfo("user", null); p.value = info.getProperty("user"); p.required = true; pinfo[0] = p; p = new DriverPropertyInfo("password", null); p.value = info.getProperty("password"); p.required = true; pinfo[1] = p; p = new DriverPropertyInfo("get_column_name", null); p.value = info.getProperty("get_column_name", "true"); p.required = false; p.choices = choices; pinfo[2] = p; p = new DriverPropertyInfo("ifexists", null); p.value = info.getProperty("ifexists"); p.required = false; p.choices = choices; pinfo[3] = p; return pinfo; }