protected DriverPropertyInfo[] getPropertyInfo(Properties connProps, List<DriverPropertyInfo> baseDriverProps) {
DriverPropertyInfo[] driverProps = new DriverPropertyInfo[10 + baseDriverProps.size()];
this.copyBaseProperties(driverProps, baseDriverProps, 10);
// Query Endpoint parameter
driverProps[0] = new DriverPropertyInfo(PARAM_QUERY_ENDPOINT, connProps.getProperty(PARAM_QUERY_ENDPOINT));
driverProps[0].required = !connProps.containsKey(PARAM_UPDATE_ENDPOINT);
driverProps[0].description = "Sets the SPARQL Query endpoint to use for query operations, if this is specified and "
+ PARAM_UPDATE_ENDPOINT + " is not then a read-only connection will be created";
// Update Endpoint parameter
driverProps[1] = new DriverPropertyInfo(PARAM_UPDATE_ENDPOINT, connProps.getProperty(PARAM_UPDATE_ENDPOINT));
driverProps[1].required = !connProps.containsKey(PARAM_UPDATE_ENDPOINT);
driverProps[1].description = "Sets the SPARQL Update endpoint to use for update operations, if this is specified and "
+ PARAM_QUERY_ENDPOINT + " is not then a write-only connection will be created";
// Default Graph parameter
driverProps[2] = new DriverPropertyInfo(PARAM_DEFAULT_GRAPH_URI, null);
driverProps[2].required = false;
driverProps[2].description = "Sets the URI for a default graph for queries, may be specified multiple times to specify multiple graphs which should form the default graph";
// Named Graph parameter
driverProps[3] = new DriverPropertyInfo(PARAM_NAMED_GRAPH_URI, null);
driverProps[3].required = false;
driverProps[3].description = "Sets the URI for a named graph for queries, may be specified multiple times to specify multiple named graphs which should be accessible";
// Using Graph parameter
driverProps[4] = new DriverPropertyInfo(PARAM_USING_GRAPH_URI, null);
driverProps[4].required = false;
driverProps[4].description = "Sets the URI for a default graph for updates, may be specified multiple times to specify multiple graphs which should form the default graph";
// Using Named Graph parameter
driverProps[5] = new DriverPropertyInfo(PARAM_USING_NAMED_GRAPH_URI, null);
driverProps[5].required = false;
driverProps[5].description = "Sets the URI for a named graph for updates, may be specified multiple times to specify multiple named graph which should be accessible";
// Results Types
driverProps[6] = new DriverPropertyInfo(PARAM_SELECT_RESULTS_TYPE, connProps.getProperty(PARAM_SELECT_RESULTS_TYPE));
driverProps[6].required = false;
driverProps[6].description = "Sets the results type for SELECT queries that will be requested from the remote endpoint";
driverProps[7] = new DriverPropertyInfo(PARAM_MODEL_RESULTS_TYPE, connProps.getProperty(PARAM_MODEL_RESULTS_TYPE));
driverProps[7].required = false;
driverProps[7].description = "Sets the results type for CONSTRUCT and DESCRIBE queries that will be requested from the remote endpoint";
// User Name parameter
driverProps[8] = new DriverPropertyInfo(PARAM_USERNAME, connProps.getProperty(PARAM_USERNAME));
// Password parameter
driverProps[9] = new DriverPropertyInfo(PARAM_PASSWORD, connProps.getProperty(PARAM_PASSWORD));
return driverProps;
}