Revision 29242

View differences:

branches/v2_0_0_prep/libraries/libGeocoding/src/org/gvsig/normalization/NormalizationLocator.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2008 PRODEVELOP		Main development
26
 */
27

  
28
package org.gvsig.normalization;
29

  
30
import org.gvsig.tools.locator.AbstractLocator;
31
import org.gvsig.tools.locator.LocatorException;
32

  
33
/**
34
 * Normalization locator
35
 * 
36
 * @author <a href="mailto:jsanz@prodevelop.es"> Jorge Gaspar Sanz Salinas</a>
37
 * @author <a href="mailto:vsanjaime@prodevelop.es"> Vicente Sanjaime Calvet</a>
38
 * 
39
 */
40
public class NormalizationLocator extends AbstractLocator {
41

  
42
	private static final String LOCATOR_NAME = "NormalizationLocator";
43
	public static final String NORMALIZER_NAME = "Normalizer"; 	
44

  
45
	/**
46
	 * Unique instance.
47
	 */
48
	private static NormalizationLocator instance;
49
	
50
	/**
51
	 * Private constructor following the Singleton pattern
52
	 */
53
	private NormalizationLocator(){
54
	}
55

  
56
	/**
57
	 * Return the singleton instance.
58
	 * 
59
	 * @return the singleton instance
60
	 */
61
	public static NormalizationLocator getInstance() {
62
		synchronized (NormalizationLocator.class){
63
			if (instance==null)
64
				instance = new NormalizationLocator();	
65
		}
66
		
67
		return instance;
68
	}
69

  
70
	/**
71
	 * Returns the Locator name.
72
	 * 
73
	 * @return String containing the locator name.
74
	 */
75
	public String getLocatorName() {
76
		return LOCATOR_NAME;
77
	}
78
	
79
	/**	
80
	 * Registers the Class implementing the Geocoder interface
81
	 * @param clazz
82
	 */
83
	@SuppressWarnings("unchecked")
84
	public static void registerGeocoder (Class clazz){
85
		getInstance().register(NORMALIZER_NAME, clazz);
86
	}
87
	
88
	/**
89
	 * Return a refrence to Geocoder 
90
	 * @return a reference to Geocoder
91
	 * @throws LocatorException
92
	 */
93
	public static NormalizationTransform getNormalizer() throws LocatorException{
94
		NormalizationLocator loc = NormalizationLocator.getInstance();
95
		Object norm = loc.get(NORMALIZER_NAME);
96
		return (NormalizationTransform) norm;
97
	}
98

  
99
}
branches/v2_0_0_prep/libraries/libGeocoding/src/org/gvsig/normalization/NormalizationLibrary.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 * 
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 * 
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * 
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
 * MA  02110-1301, USA.
20
 * 
21
 */
22

  
23
/*
24
 * AUTHORS (In addition to CIT):
25
 * 2008 PRODEVELOP		Main development
26
 */
27

  
28
package org.gvsig.normalization;
29

  
30
import org.gvsig.tools.locator.BaseLibrary;
31
import org.gvsig.tools.locator.ReferenceNotRegisteredException;
32

  
33
/**
34
 * Normalization library
35
 * 
36
 * @author <a href="mailto:jsanz@prodevelop.es"> Jorge Gaspar Sanz Salinas</a>
37
 * @author <a href="mailto:vsanjaime@prodevelop.es"> Vicente Sanjaime Calvet</a>
38
 * 
39
 */
40
public class NormalizationLibrary extends BaseLibrary {
41

  
42
	/**
43
	 * Performs all the initializations or validations related to the library
44
	 * dependencies, as getting references to objects through other libraries
45
	 * Locators.
46
	 * 
47
	 * @throws ReferenceNotRegisteredException
48
	 *             if there is an error while loading an implementation of the
49
	 *             library
50
	 */
51
	public void postInitialize() {
52
		super.postInitialize();
53

  
54
		// Validate if there are any implementation registered
55
		NormalizationTransform norm = NormalizationLocator.getNormalizer();
56
		if (norm == null) {
57
			throw new ReferenceNotRegisteredException(
58
					NormalizationLocator.NORMALIZER_NAME, NormalizationLocator
59
							.getInstance());
60
		}
61

  
62
	}
63

  
64
}

Also available in: Unified diff