KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > applications > faces > address > MatchState


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33 package com.icesoft.applications.faces.address;
34
35 import java.util.Iterator JavaDoc;
36 import java.util.TreeMap JavaDoc;
37
38 /**
39  * State-specific matching
40  */

41 public class MatchState extends MatchBean {
42
43     /**
44      * Constructor for MatchState instantiates a new TreeMap.
45      */

46     public MatchState(String JavaDoc state) {
47         this.state = state;
48         cityMap = new TreeMap JavaDoc();
49     }
50
51     /**
52      * Adds the supplied MatchCity to the city map.
53      *
54      * @param cityDb the MatchCity to add
55      * @return the closest matching city
56      */

57     public MatchCity addCity(MatchCity cityDb) {
58         MatchCity existingCity = getCity(cityDb.getCity());
59         if (existingCity == null) {
60             cityMap.put(cityDb.getCity(), cityDb);
61             return cityDb;
62         }
63         return existingCity;
64     }
65
66     /**
67      * Takes the city values from the map and puts them in an array.
68      *
69      * @return the array of city strings
70      */

71     public String JavaDoc[] getCitiesAsStrings() {
72
73         Iterator JavaDoc itor = cityMap.keySet().iterator();
74         String JavaDoc cities[] = new String JavaDoc[cityMap.size()];
75         int i = 0;
76
77         while (itor.hasNext()) {
78             cities[i++] = (String JavaDoc) itor.next();
79         }
80         return cities;
81     }
82
83     /**
84      * Finds the MatchCity object that corresponds to the provided string.
85      *
86      * @param checkCity the city to check
87      * @return the corresponding MatchCity object
88      */

89     public MatchCity getCity(String JavaDoc checkCity) {
90         MatchCity matchingCity = (MatchCity) cityMap.get(checkCity);
91         if (matchingCity != null) {
92             //exact Match
93
matchingCity.setMatch(true);
94         }
95         return matchingCity;
96     }
97
98     /**
99      * Finds the closest city to the provided string.
100      *
101      * @param checkCity the city to check
102      * @return the closest matching city
103      */

104     public MatchCity getClosestCity(String JavaDoc checkCity) {
105         checkCity = checkCity.trim();
106         AddressFormProcessor.fixCapitalization(checkCity);
107         return (MatchCity) getClosestMatch(checkCity, cityMap);
108     }
109
110     /**
111      * Finds the closest zip to the provided string.
112      *
113      * @param checkZip the zip to check
114      * @return the closest matching MatchZip object
115      */

116     public MatchZip getClosestZip(String JavaDoc checkZip) {
117         checkZip = checkZip.trim();
118         Iterator JavaDoc itor = cityMap.keySet().iterator();
119         TreeMap JavaDoc zips = new TreeMap JavaDoc();
120
121         while (itor.hasNext()) {
122             MatchCity thisCity = (MatchCity) cityMap.get(itor.next());
123             MatchZip thisZip = thisCity.getClosestZip(checkZip);
124             zips.put(thisZip.getZip(), thisZip);
125         }
126         return (MatchZip) getClosestMatch(checkZip, zips);
127     }
128 }
Popular Tags