svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.sqlite / org.gvsig.sqlite.provider / src / main / java / org / gvsig / sqlite / dal / SQLiteConnectionParametersHelper.java @ 47456
History | View | Annotate | Download (3.41 KB)
1 |
|
---|---|
2 |
package org.gvsig.sqlite.dal; |
3 |
|
4 |
import java.io.File; |
5 |
import java.util.Properties; |
6 |
import org.apache.commons.io.FilenameUtils; |
7 |
import org.apache.commons.lang3.BooleanUtils; |
8 |
import org.apache.commons.lang3.StringUtils; |
9 |
import org.gvsig.fmap.dal.DataParameters; |
10 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
11 |
import org.gvsig.fmap.dal.resource.db.DBParameters; |
12 |
import org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters; |
13 |
|
14 |
|
15 |
public class SQLiteConnectionParametersHelper { |
16 |
|
17 |
private final JDBCConnectionParameters parameters; |
18 |
|
19 |
private static final String ENABLE_SHARED_CACHE = "enable_shared_cache"; |
20 |
private static final String ENABLE_LOAD_EXTENSION = "enable_load_extension"; |
21 |
private static final String DATABASE_FILE = "database_file"; |
22 |
|
23 |
public SQLiteConnectionParametersHelper(JDBCConnectionParameters parameters) {
|
24 |
this.parameters = parameters;
|
25 |
} |
26 |
|
27 |
public String getUrl() { |
28 |
String url = (String) this.getDynValue(JDBCConnectionParameters.URL_PARAMTER_NAME); |
29 |
if( StringUtils.isEmpty(url) ) {
|
30 |
url = SQLiteUtils.getConnectionURL((SQLiteConnectionParameters) this.parameters);
|
31 |
this.setDynValue(JDBCConnectionParameters.URL_PARAMTER_NAME,url);
|
32 |
} |
33 |
return url;
|
34 |
} |
35 |
|
36 |
public void validate() throws ValidateDataParametersException { |
37 |
if (this.getDynValue(JDBCConnectionParameters.JDBC_DRIVER_CLASS_PARAMTER_NAME) == null) { |
38 |
this.setDynValue(JDBCConnectionParameters.JDBC_DRIVER_CLASS_PARAMTER_NAME,
|
39 |
SQLiteUtils.SQLITE_JDBC_DRIVER |
40 |
); |
41 |
} |
42 |
if (getFile() == null) { |
43 |
throw new ValidateDataParametersException(); |
44 |
} |
45 |
} |
46 |
|
47 |
private Object getDynValue(String name) { |
48 |
return ((DataParameters)this.parameters).getDynValue(name); |
49 |
} |
50 |
|
51 |
private void setDynValue(String name, Object value) { |
52 |
((DataParameters)this.parameters).setDynValue(name,value);
|
53 |
} |
54 |
|
55 |
public boolean getEnableLoadExtension() { |
56 |
return (boolean) this.getDynValue(ENABLE_LOAD_EXTENSION); |
57 |
} |
58 |
|
59 |
public boolean getEnableSharedCache() { |
60 |
return (boolean) this.getDynValue(ENABLE_SHARED_CACHE); |
61 |
} |
62 |
|
63 |
public void setEnableLoadExtension(boolean v) { |
64 |
this.setDynValue(ENABLE_LOAD_EXTENSION, v);
|
65 |
} |
66 |
|
67 |
public void setEnableSharedCache(boolean v) { |
68 |
this.setDynValue(ENABLE_SHARED_CACHE, v);
|
69 |
} |
70 |
|
71 |
public File getFile() { |
72 |
File f = (File) this.getDynValue(DATABASE_FILE); |
73 |
if( this.getDynValue(DBParameters.DBNAME_PARAMTER_NAME)==null && |
74 |
f != null ) {
|
75 |
String dbname = FilenameUtils.getBaseName(f.getName());
|
76 |
this.setDynValue(DBParameters.DBNAME_PARAMTER_NAME, dbname);
|
77 |
} |
78 |
return f;
|
79 |
} |
80 |
|
81 |
public void setFile(File database) { |
82 |
this.setDynValue(DATABASE_FILE, database);
|
83 |
if( this.getDynValue(DBParameters.DBNAME_PARAMTER_NAME)==null && |
84 |
database != null ) {
|
85 |
String dbname = FilenameUtils.getBaseName(database.getName());
|
86 |
this.setDynValue(DBParameters.DBNAME_PARAMTER_NAME, dbname);
|
87 |
} |
88 |
} |
89 |
|
90 |
public Properties getProperties() { |
91 |
Properties props = new Properties(); |
92 |
props.setProperty("enable_shared_cache", BooleanUtils.toStringTrueFalse(getEnableSharedCache()));
|
93 |
props.setProperty("enable_load_extension", BooleanUtils.toStringTrueFalse(getEnableLoadExtension()));
|
94 |
return props;
|
95 |
} |
96 |
} |