\r
private String beanName;\r
private String dbUrl;\r
+ \r
+ private String database;\r
+ \r
+ /**\r
+ * This is strictly a <String, String> list of properties\r
+ */\r
private Properties cdmSourceProperties;\r
- private Properties dataSourceProperties;\r
+\r
private List<Attribute> cdmSourceAttributes;\r
\r
\r
// properties from the persistent xml file \r
cdmSourceProperties = cdmPersistentXMLSource.getCdmSourceProperties();\r
cdmSourceAttributes = cdmPersistentXMLSource.getCdmSourceAttributes();\r
- // properties we must have for a data source\r
- dataSourceProperties = new Properties(cdmSourceProperties);\r
+ \r
// added database specific properties if they are null\r
String url = getCdmSourceProperty(CdmSourceProperties.URL);\r
DatabaseTypeEnum dbTypeEnum = getDatabaseType();\r
if (getCdmSourceProperty(CdmSourceProperties.DATABASE) == null){\r
String database = dbType.getDatabaseNameByConnectionString(url);\r
if(database != null) {\r
- dataSourceProperties.setProperty(CdmSourceProperties.DATABASE.toString(), database);\r
+ setDatabase(database);\r
}\r
}\r
if(getCdmSourceProperty(CdmSourceProperties.SERVER) == null){\r
String server = dbType.getServerNameByConnectionString(url);\r
if(server != null) {\r
- dataSourceProperties.setProperty(CdmSourceProperties.SERVER.toString(),server);\r
+ setServer(server);\r
}\r
}\r
if(getCdmSourceProperty(CdmSourceProperties.PORT) == null){\r
int port = dbType.getPortByConnectionString(url); \r
- if(port > 0) {\r
- dataSourceProperties.setProperty(CdmSourceProperties.PORT.toString(),String.valueOf(port));\r
+ if(port != 0) {\r
+ setPort(port);\r
}\r
}\r
}\r
return beanName;\r
}\r
\r
- \r
@Override\r
public String getDatabase() {\r
- return getCdmSourceProperty(CdmSourceProperties.DATABASE);\r
+ return database;\r
}\r
\r
\r
+ @Override\r
+ public void setDatabase(String database) {\r
+ this.database = database;\r
+ \r
+ }\r
+ \r
@Override\r
public String getFilePath() { \r
return getCdmSourceProperty(CdmSourceProperties.FILEPATH);\r
return H2Mode.fromString(getCdmSourceProperty(CdmSourceProperties.MODE));\r
}\r
\r
+ @Override\r
+ public void setMode(H2Mode h2Mode) {\r
+ cdmSourceProperties.put(CdmSourceProperties.MODE.toString(), h2Mode.name());\r
+ \r
+ }\r
+ \r
@Override\r
public String getUsername(){\r
return getCdmSourceProperty(CdmSourceProperties.USERNAME);\r
}\r
\r
+ @Override\r
+ public void setUsername(String username) {\r
+ cdmSourceProperties.put(CdmSourceProperties.USERNAME.toString(), username);\r
+ \r
+ }\r
+ \r
@Override\r
public String getPassword(){\r
return getCdmSourceProperty(CdmSourceProperties.PASSWORD);\r
}\r
+ \r
+ @Override\r
+ public void setPassword(String password) {\r
+ cdmSourceProperties.put(CdmSourceProperties.PASSWORD.toString(), password);\r
+ \r
+ }\r
\r
@Override\r
public NomenclaturalCode getNomenclaturalCode() {\r
}\r
\r
@Override\r
- public int getPort() {\r
- String port = CdmUtils.Nz(getCdmSourceProperty(CdmSourceProperties.PORT));\r
- if (port == null || "".equals(port)){\r
- return -1;\r
- }else{\r
- //TODO exception if non integer\r
- return Integer.valueOf(port);\r
- }\r
+ public void setNomenclaturalCode(NomenclaturalCode nomenclaturalCode) {\r
+ cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), nomenclaturalCode.name());\r
}\r
\r
\r
- @Override\r
- public String getServer() {\r
- return getCdmSourceProperty(CdmSourceProperties.SERVER);\r
- }\r
-\r
\r
@Override\r
public DatabaseTypeEnum getDatabaseType(){\r
DatabaseTypeEnum dbType = DatabaseTypeEnum.getDatabaseEnumByDriverClass(strDriverClass);\r
return dbType;\r
}\r
- \r
- \r
-\r
+ \r
\r
public String getCdmSourceProperty(CdmSourceProperties property){ \r
- return dataSourceProperties.getProperty(property.toString(),null);\r
+ return cdmSourceProperties.getProperty(property.toString(),null);\r
}\r
+\r
/**\r
* Returns a BeanDefinition object of type DataSource that contains\r
* datsource properties (url, username, password, ...)\r
return (bean != null);\r
}\r
\r
+ /**\r
+ * @param strDataSourceName\r
+ * @param dataSource\r
+ * @param code \r
+ * @return\r
+ * the updated dataSource, null if not succesful\r
+ */\r
+ public static CdmPersistentDataSource update(String strDataSourceName,\r
+ ICdmDataSource dataSource) throws DataSourceNotFoundException, IllegalArgumentException{\r
+ CdmPersistentSourceUtils.delete(CdmPersistentSourceUtils.getBeanName(strDataSourceName,DATASOURCE_BEAN_POSTFIX));\r
+ return save(strDataSourceName, dataSource);\r
+ }\r
+ \r
+ /**\r
+ * Replace the persisted datasource with another one.\r
+ * Used primarily for renaming a datasource.\r
+ * \r
+ * @param strDataSourceName\r
+ * @param dataSource\r
+ * @return\r
+ * @throws DataSourceNotFoundException\r
+ * @throws IllegalArgumentException\r
+ */\r
+ public static CdmPersistentDataSource replace(String strDataSourceName,\r
+ ICdmDataSource dataSource) throws DataSourceNotFoundException, IllegalArgumentException{\r
+ CdmPersistentSourceUtils.delete(CdmPersistentSourceUtils.getBeanName(strDataSourceName,DATASOURCE_BEAN_POSTFIX));\r
+ return save(dataSource);\r
+ }\r
+ \r
+ /**\r
+ * @param dataSource\r
+ * @return\r
+ * @throws IllegalArgumentException\r
+ */\r
+ public static CdmPersistentDataSource save(ICdmDataSource dataSource) throws IllegalArgumentException {\r
+ return save(dataSource.getName(),dataSource);\r
+ }\r
\r
/**\r
* \r
}\r
}\r
\r
- /**\r
- * @param strDataSourceName\r
- * @param dataSource\r
- * @param code \r
- * @return\r
- * the updated dataSource, null if not succesful\r
- */\r
- public static CdmPersistentDataSource update(String strDataSourceName,\r
- ICdmDataSource dataSource) throws DataSourceNotFoundException, IllegalArgumentException{\r
- CdmPersistentSourceUtils.delete(CdmPersistentSourceUtils.getBeanName(strDataSourceName,DATASOURCE_BEAN_POSTFIX));\r
- return save(strDataSourceName, dataSource);\r
- }\r
\r
/**\r
* Saves a datasource to the datasource config file. If strDataSourceName differs a new dataSource\r
getCheckedDataSourceParameter(dataSource.getPassword()), \r
dataSourceClass, \r
null, null, null, null, \r
- getCheckedDataSourceParameter(dataSource.getFilePath()), \r
+ dataSource.getFilePath(), \r
dataSource.getMode(),\r
dataSource.getNomenclaturalCode());\r
}else{\r
Class<? extends DataSource> dataSourceClass;\r
try {\r
dataSourceClass = (Class<? extends DataSource>) Class.forName(dataSourceClassName);\r
- \r
+ String server = getCheckedDataSourceParameter(dataSource.getServer());\r
CdmPersistentDataSource persistendDatasource = save(\r
strDataSourceName, \r
dataSource.getDatabaseType(), \r
\r
\r
\r
+\r
+\r
+\r
+\r
+\r
}
\ No newline at end of file