Revision 19908

View differences:

trunk/libraries/libDataSource/src/org/gvsig/data/IDataSource.java
1
package org.gvsig.data;
2

  
3
import org.gvsig.data.exception.InitializeException;
4
import org.gvsig.data.exception.InitializeWriterException;
5
import org.gvsig.data.exception.ReadException;
6
import org.gvsig.data.vectorial.IFeatureType;
7

  
8
public interface IDataSource {
9

  
10
	public String getName();
11

  
12
	public void init(IDataSourceParameters parameters);
13

  
14
	public IDataStoreParameters[] getSources() throws ReadException;
15

  
16
	public IDataStore createNewDataStore(IDataStoreParameters dsp,IFeatureType featureType) throws InitializeException, InitializeWriterException;
17

  
18
	public boolean canCreate();
19

  
20
}
trunk/libraries/libDataSource/src/org/gvsig/data/DataSourceManager.java
1
package org.gvsig.data;
2

  
3
import java.util.ArrayList;
4
import java.util.Iterator;
5

  
6
import org.gvsig.data.exception.InitializeException;
7

  
8
public class DataSourceManager {
9
	private static ArrayList registers = new ArrayList();
10

  
11
	private static DataSourceManager manager = null;
12

  
13
	public static DataSourceManager getManager() {
14
		if( manager == null ) {
15
			manager = new DataSourceManager();
16
		}
17
		return manager;
18
	}
19

  
20
	public static ResourceManager getResourceManager() {
21
		return ResourceManager.getResourceManager();
22
	}
23

  
24
	public DataSourceManager() {
25
//		org.gvsig.data.datastores.vectorial.driver.shp.Register.selfRegister();
26
//		org.gvsig.data.datastores.vectorial.driver.Register.selfRegister();
27

  
28
//		org.gvsig.data.datastores.gml.Register.selfRegister();
29
	}
30

  
31
	public void registerGeometryHandler(String dataStoreID, Class geometryHandlerClass) {
32

  
33
	}
34

  
35
	public void registerDataStore(String name, Class dataStoreClass, Class parametersClass) {
36
		RegisterInfo register=new RegisterInfo(name,dataStoreClass,parametersClass);
37
		if (registers.contains(register)){
38
			return;
39
		}
40
		registers.add(register);
41
	}
42
	/**
43
	 * Levanta una instancia de los parametros solicitados
44
	 * inicializa el nombre en la instancia
45
	 * y la devuelve.
46
	 **/
47
	public IDataStoreParameters createDataStoreParameters(String name){
48
		Iterator iterator=registers.iterator();
49
		while (iterator.hasNext()) {
50
			RegisterInfo registerInfo = (RegisterInfo) iterator.next();
51
			if (name.equals(registerInfo.name)){
52
				try {
53
					return (IDataStoreParameters)registerInfo.parametersClazz.newInstance();
54
				} catch (InstantiationException e) {
55
					// TODO Auto-generated catch block
56
					e.printStackTrace();
57
				} catch (IllegalAccessException e) {
58
					// TODO Auto-generated catch block
59
					e.printStackTrace();
60
				}
61
			}
62
		}
63
		return null;
64
	}
65
	/**
66
	 * Levanta la instancia del datasource,
67
	 * levanta una instancia del driver que precisa el datasource
68
	 * y por ultimo invoca al metodo init del datasource.
69
	 * @throws InitializeException
70
	 **/
71
	public IDataStore createDataStore(IDataStoreParameters parameters) throws InitializeException {
72
		Iterator iterator=registers.iterator();
73
		while (iterator.hasNext()) {
74
			RegisterInfo registerInfo = (RegisterInfo) iterator.next();
75
			if (registerInfo.parametersClazz.isAssignableFrom(parameters.getClass())){
76
				try {
77
					IDataStore dataStore= (IDataStore)registerInfo.clazz.newInstance();
78
					dataStore.init(parameters);
79
					return dataStore;
80
				} catch (InstantiationException e) {
81
					// TODO Auto-generated catch block
82
					e.printStackTrace();
83
				} catch (IllegalAccessException e) {
84
					// TODO Auto-generated catch block
85
					e.printStackTrace();
86
				}
87
			}
88
		}
89
		return null;
90
	}
91

  
92

  
93
	//FIXME: COncepto de DataSource
94
	/* Como conjunto de propiedades genericas a un tipo de DataStore
95
	 * a las que se puede acceder sin tener que crear un DataStore/Driver.
96
	 *
97
	 * Por ejemplo para "DriverDataSource.shp" podria tener el
98
	 * tamaño de identificador de campo.
99
	 *
100
	 * En "DriverDataSource.postgres" podria aportar informacion sobre
101
	 * las tablas disponibles o cosas asi. Hay que ver que precisa
102
	 * GeoDB y de donde lo puede obtener.
103
	 *
104
	 * Hay que pensarlo bien.
105
	 *
106
	 */
107

  
108
	public void registerDataSource(String name, Class dataSourceClass, Class parametersClass) {
109
		RegisterInfo register=new RegisterInfo(name,dataSourceClass,parametersClass);
110
		if (registers.contains(register)){
111
			return;
112
		}
113
		registers.add(register);
114
	}
115
	/**
116
	 * Levanta una instancia de los parametros solicitados
117
	 * inicializa el nombre en la instancia
118
	 * y la devuelve.
119
	 **/
120
	public IDataSourceParameters createDataSourceParameters(String name){
121
		Iterator iterator=registers.iterator();
122
		while (iterator.hasNext()) {
123
			RegisterInfo registerInfo = (RegisterInfo) iterator.next();
124
			if (name.equals(registerInfo.name)){
125
				try {
126
					return (IDataSourceParameters)registerInfo.parametersClazz.newInstance();
127
				} catch (InstantiationException e) {
128
					// TODO Auto-generated catch block
129
					e.printStackTrace();
130
				} catch (IllegalAccessException e) {
131
					// TODO Auto-generated catch block
132
					e.printStackTrace();
133
				}
134
			}
135
		}
136
		return null;
137
	}
138

  
139
	public IDataSource createDataSource(IDataSourceParameters parameters) {
140
		Iterator iterator=registers.iterator();
141
		while (iterator.hasNext()) {
142
			RegisterInfo registerInfo = (RegisterInfo) iterator.next();
143
			if (parameters.getClass().isAssignableFrom(registerInfo.parametersClazz)){
144
				try {
145
					IDataSource dataSource= (IDataSource)registerInfo.clazz.newInstance();
146
					dataSource.init(parameters);
147
					return dataSource;
148
				} catch (InstantiationException e) {
149
					// TODO Auto-generated catch block
150
					e.printStackTrace();
151
				} catch (IllegalAccessException e) {
152
					// TODO Auto-generated catch block
153
					e.printStackTrace();
154
				}
155
			}
156
		}
157

  
158
		return null;
159
	}
160
	private class RegisterInfo{
161
		private String name;
162
		private Class clazz;
163
		private Class parametersClazz;
164

  
165
		public RegisterInfo(String name, Class dsc, Class pc){
166
			this.name=name;
167
			this.clazz=dsc;
168
			this.parametersClazz=pc;
169
		}
170

  
171
		public boolean equals(Object obj) {
172
			if (obj instanceof RegisterInfo){
173
				RegisterInfo ri = (RegisterInfo)obj;
174
				return ri.name.equals(this.name) &&
175
					ri.clazz.equals(this.clazz) &&
176
					ri.parametersClazz.equals(this.parametersClazz);
177
			}
178
			return super.equals(obj);
179
		}
180

  
181

  
182

  
183
	}
184

  
185
}
trunk/libraries/libDataSource/src/org/gvsig/data/IDataSourceParameters.java
1
package org.gvsig.data;
2

  
3
public interface IDataSourceParameters {
4

  
5
	public String getDataSourceName();
6

  
7
}
trunk/libraries/libDataSource/src/org/gvsig/data/IDataExplorer.java
1
package org.gvsig.data;
2

  
3
import org.gvsig.data.exception.InitializeException;
4
import org.gvsig.data.exception.InitializeWriterException;
5
import org.gvsig.data.exception.ReadException;
6

  
7
public interface IDataExplorer {
8

  
9
	public String getName();
10

  
11
	public void init(IDataExplorerParameters parameters);
12

  
13
	public IDataStoreParameters[] list() throws ReadException;
14

  
15
	public IDataStore createDataStore(IDataStoreParameters dsp) throws InitializeException, InitializeWriterException;
16

  
17
	public boolean canCreate();
18

  
19
}
trunk/libraries/libDataSource/src/org/gvsig/data/DataManager.java
1
package org.gvsig.data;
2

  
3
import java.util.ArrayList;
4
import java.util.Iterator;
5

  
6
import org.gvsig.data.exception.InitializeException;
7

  
8
public class DataManager {
9
	private static ArrayList registers = new ArrayList();
10

  
11
	private static DataManager manager = null;
12

  
13
	public static DataManager getManager() {
14
		if( manager == null ) {
15
			manager = new DataManager();
16
		}
17
		return manager;
18
	}
19

  
20
	public static ResourceManager getResourceManager() {
21
		return ResourceManager.getResourceManager();
22
	}
23

  
24
	public DataManager() {
25
//		org.gvsig.data.datastores.vectorial.driver.shp.Register.selfRegister();
26
//		org.gvsig.data.datastores.vectorial.driver.Register.selfRegister();
27

  
28
//		org.gvsig.data.datastores.gml.Register.selfRegister();
29
	}
30

  
31
	public void registerGeometryHandler(String dataStoreID, Class geometryHandlerClass) {
32

  
33
	}
34

  
35
	public void registerDataStore(String name, Class dataStoreClass, Class parametersClass) {
36
		RegisterInfo register=new RegisterInfo(name,dataStoreClass,parametersClass);
37
		if (registers.contains(register)){
38
			return;
39
		}
40
		registers.add(register);
41
	}
42
	/**
43
	 * Levanta una instancia de los parametros solicitados
44
	 * inicializa el nombre en la instancia
45
	 * y la devuelve.
46
	 **/
47
	public IDataStoreParameters createDataStoreParameters(String name){
48
		Iterator iterator=registers.iterator();
49
		while (iterator.hasNext()) {
50
			RegisterInfo registerInfo = (RegisterInfo) iterator.next();
51
			if (name.equals(registerInfo.name)){
52
				try {
53
					return (IDataStoreParameters)registerInfo.parametersClazz.newInstance();
54
				} catch (InstantiationException e) {
55
					// TODO Auto-generated catch block
56
					e.printStackTrace();
57
				} catch (IllegalAccessException e) {
58
					// TODO Auto-generated catch block
59
					e.printStackTrace();
60
				}
61
			}
62
		}
63
		return null;
64
	}
65
	/**
66
	 * Levanta la instancia del datasource,
67
	 * levanta una instancia del driver que precisa el datasource
68
	 * y por ultimo invoca al metodo init del datasource.
69
	 * @throws InitializeException
70
	 **/
71
	public IDataStore createDataStore(IDataStoreParameters parameters) throws InitializeException {
72
		Iterator iterator=registers.iterator();
73
		while (iterator.hasNext()) {
74
			RegisterInfo registerInfo = (RegisterInfo) iterator.next();
75
			if (registerInfo.parametersClazz.isAssignableFrom(parameters.getClass())){
76
				try {
77
					IDataStore dataStore= (IDataStore)registerInfo.clazz.newInstance();
78
					dataStore.init(parameters);
79
					return dataStore;
80
				} catch (InstantiationException e) {
81
					// TODO Auto-generated catch block
82
					e.printStackTrace();
83
				} catch (IllegalAccessException e) {
84
					// TODO Auto-generated catch block
85
					e.printStackTrace();
86
				}
87
			}
88
		}
89
		return null;
90
	}
91

  
92

  
93
	//FIXME: COncepto de DataSource
94
	/* Como conjunto de propiedades genericas a un tipo de DataStore
95
	 * a las que se puede acceder sin tener que crear un DataStore/Driver.
96
	 *
97
	 * Por ejemplo para "DriverDataSource.shp" podria tener el
98
	 * tamaño de identificador de campo.
99
	 *
100
	 * En "DriverDataSource.postgres" podria aportar informacion sobre
101
	 * las tablas disponibles o cosas asi. Hay que ver que precisa
102
	 * GeoDB y de donde lo puede obtener.
103
	 *
104
	 * Hay que pensarlo bien.
105
	 *
106
	 */
107

  
108
	public void registerDataSource(String name, Class dataSourceClass, Class parametersClass) {
109
		RegisterInfo register=new RegisterInfo(name,dataSourceClass,parametersClass);
110
		if (registers.contains(register)){
111
			return;
112
		}
113
		registers.add(register);
114
	}
115
	/**
116
	 * Levanta una instancia de los parametros solicitados
117
	 * inicializa el nombre en la instancia
118
	 * y la devuelve.
119
	 **/
120
	public IDataExplorerParameters createDataExplorerParameters(String name){
121
		Iterator iterator=registers.iterator();
122
		while (iterator.hasNext()) {
123
			RegisterInfo registerInfo = (RegisterInfo) iterator.next();
124
			if (name.equals(registerInfo.name)){
125
				try {
126
					return (IDataExplorerParameters)registerInfo.parametersClazz.newInstance();
127
				} catch (InstantiationException e) {
128
					// TODO Auto-generated catch block
129
					e.printStackTrace();
130
				} catch (IllegalAccessException e) {
131
					// TODO Auto-generated catch block
132
					e.printStackTrace();
133
				}
134
			}
135
		}
136
		return null;
137
	}
138

  
139
	public IDataExplorer createDataExplorer(IDataExplorerParameters parameters) {
140
		Iterator iterator=registers.iterator();
141
		while (iterator.hasNext()) {
142
			RegisterInfo registerInfo = (RegisterInfo) iterator.next();
143
			if (parameters.getClass().isAssignableFrom(registerInfo.parametersClazz)){
144
				try {
145
					IDataExplorer dataSource= (IDataExplorer)registerInfo.clazz.newInstance();
146
					dataSource.init(parameters);
147
					return dataSource;
148
				} catch (InstantiationException e) {
149
					// TODO Auto-generated catch block
150
					e.printStackTrace();
151
				} catch (IllegalAccessException e) {
152
					// TODO Auto-generated catch block
153
					e.printStackTrace();
154
				}
155
			}
156
		}
157

  
158
		return null;
159
	}
160
	private class RegisterInfo{
161
		private String name;
162
		private Class clazz;
163
		private Class parametersClazz;
164

  
165
		public RegisterInfo(String name, Class dsc, Class pc){
166
			this.name=name;
167
			this.clazz=dsc;
168
			this.parametersClazz=pc;
169
		}
170

  
171
		public boolean equals(Object obj) {
172
			if (obj instanceof RegisterInfo){
173
				RegisterInfo ri = (RegisterInfo)obj;
174
				return ri.name.equals(this.name) &&
175
					ri.clazz.equals(this.clazz) &&
176
					ri.parametersClazz.equals(this.parametersClazz);
177
			}
178
			return super.equals(obj);
179
		}
180

  
181

  
182

  
183
	}
184

  
185
}
trunk/libraries/libDataSource/src/org/gvsig/data/vectorial/AbstractDataSourceDB.java
1
package org.gvsig.data.vectorial;
2

  
3
import org.gvsig.data.IDataSource;
4
import org.gvsig.data.IDataSourceParameters;
5
import org.gvsig.data.IDataStoreParameters;
6
import org.gvsig.data.exception.ReadException;
7

  
8
public abstract class AbstractDataSourceDB implements IDataSource {
9

  
10
}
trunk/libraries/libDataSource/src/org/gvsig/data/vectorial/DefaultFeatureType.java
11 11
	private String geometryColumn;
12 12
	private List allSRS;
13 13
	private String defaultSRS;
14
	private int[] geometryTypes;
14
	private int[] geometryTypes=new int[]{1};
15 15
	private DateFormat dateFormat=DateFormat.getDateInstance();
16 16
	private String fieldId;
17 17
	private int fieldIdIndex = -1;
trunk/libraries/libDataSource/src/org/gvsig/data/vectorial/IDataFeatureExplorer.java
1
package org.gvsig.data.vectorial;
2

  
3
import org.gvsig.data.IDataExplorer;
4
import org.gvsig.data.IDataStoreParameters;
5
import org.gvsig.data.exception.InitializeWriterException;
6
import org.gvsig.data.exception.OpenException;
7
import org.gvsig.data.exception.ReadException;
8

  
9
public interface IDataFeatureExplorer extends IDataExplorer{
10

  
11
	IDataStoreParameters add(INewDataStoreParameters ndsp) throws OpenException, InitializeWriterException;
12
	INewDataStoreParameters createNewDataStoreParameter(IDataStoreParameters dsp);
13
	void remove(IDataStoreParameters dsp) throws ReadException;
14

  
15
}
trunk/libraries/libDataSource/src/org/gvsig/data/vectorial/AbstractDataExplorerDB.java
1
package org.gvsig.data.vectorial;
2

  
3

  
4
public abstract class AbstractDataExplorerDB implements IDataFeatureExplorer {
5

  
6
}
0 7

  
trunk/libraries/libDataSource/src/org/gvsig/data/vectorial/INewDataStoreParameters.java
1
package org.gvsig.data.vectorial;
2

  
3
import org.gvsig.data.IDataStoreParameters;
4

  
5
public interface INewDataStoreParameters extends IDataStoreParameters{
6
	public IDataStoreParameters getDataStoreParameters();
7
	public IFeatureType getFeatureType();
8
	public void setDataStoreParameters(IDataStoreParameters dsp);
9
	public void setFeatureType(IFeatureType ft);
10
}
trunk/libraries/libDataSource/src/org/gvsig/data/IDataExplorerParameters.java
1
package org.gvsig.data;
2

  
3
public interface IDataExplorerParameters {
4

  
5
	public String getDataSourceName();
6

  
7
}
trunk/libraries/libDataSource/src/org/gvsig/data/IDataStore.java
68 68
	public IDataCollection getLocked();
69 69
	public void setLocked(IDataCollection locked);
70 70
	public IDataCollection createLocked();
71
	public IDataExplorer getExplorer();
71 72
}
72 73

  

Also available in: Unified diff