1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.rice.shareddata.framework.state;
18
19 import org.kuali.rice.core.util.ConcreteKeyValue;
20 import org.kuali.rice.core.util.KeyValue;
21 import org.kuali.rice.kns.lookup.keyvalues.KeyValuesBase;
22 import org.kuali.rice.shareddata.api.services.SharedDataApiServiceLocator;
23 import org.kuali.rice.shareddata.api.state.State;
24
25 import java.util.ArrayList;
26 import java.util.Collections;
27 import java.util.Comparator;
28 import java.util.List;
29
30 public class StateValuesFinder extends KeyValuesBase {
31
32 private String countryCode = "US";
33
34 @Override
35 public List<KeyValue> getKeyValues() {
36 List<KeyValue> labels = new ArrayList<KeyValue>();
37 List<State> baseCodes = SharedDataApiServiceLocator.getStateService().findAllStatesInCountry(countryCode);
38 List<State> codes = new ArrayList<State>( baseCodes );
39 Collections.sort(codes, new Comparator<State> () {
40 @Override
41 public int compare(State o1, State o2) {
42 return o1.getName().compareTo(o2.getName());
43 }
44 });
45
46 List<KeyValue> newLabels = new ArrayList<KeyValue>();
47 newLabels.add(new ConcreteKeyValue("", ""));
48 for (State state : codes) {
49 if(state.isActive()) {
50 newLabels.add(new ConcreteKeyValue(state.getCode(), state.getName()));
51 }
52 }
53 labels = newLabels;
54
55 return labels;
56 }
57
58 public void setCountryCode(String countryCode) {
59 this.countryCode = countryCode;
60 }
61
62
63 @Override
64 public void clearInternalCache() {
65 }
66 }