1 package se.perfectfools.localizer.impl;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.Collections;
6 import java.util.Comparator;
7 import java.util.Hashtable;
8 import java.util.Iterator;
9
10 import se.perfectfools.localizer.LocalizationFile;
11 import se.perfectfools.localizer.Message;
12
13 /***
14 *
15 *
16 * @author Pål Brattberg, pal@eminds.se
17 */
18 public class LocalizationFileImpl implements LocalizationFile {
19
20 private Hashtable data = new Hashtable();
21
22 public Collection getMessages() {
23 return data.values();
24 }
25
26 public Collection getMessageIds() {
27 return data.keySet();
28 }
29
30 public void addMessage(Message message) {
31 if (message != null) {
32 data.put(message.getId(), message);
33 }
34 }
35
36 public Message getMessage(String id) {
37 return (Message) data.get(id);
38 }
39
40 /***
41 * Return a sorted iterator for all messages
42 *
43 * @see se.perfectfools.localizer.LocalizationFile#iterator()
44 */
45 public Iterator iterator() {
46 Iterator iter = getMessages().iterator();
47 ArrayList sortedList = new ArrayList();
48 while (iter.hasNext()) {
49 sortedList.add(iter.next());
50 }
51 Collections.sort(sortedList, new Comparator() {
52 public boolean equals(Object arg0) {
53 return super.equals(arg0);
54 }
55
56 public int compare(Object arg0, Object arg1) {
57 int aId = Integer.parseInt(((Message) arg0).getId());
58 int bId = Integer.parseInt(((Message) arg1).getId());
59 return aId - bId;
60 }
61 });
62 return sortedList.iterator();
63 }
64
65 }