3
|
1 package jungle.core.table.simple;
|
|
2
|
|
3 import java.util.Iterator;
|
|
4 import java.util.Map.Entry;
|
|
5 import java.util.Set;
|
|
6 import java.util.concurrent.ConcurrentHashMap;
|
|
7
|
|
8 import javax.annotation.concurrent.ThreadSafe;
|
|
9
|
|
10 import jungle.core.table.PropertySequence;
|
|
11 import jungle.core.table.Record;
|
|
12 import jungle.util.Pair;
|
|
13
|
|
14 @ThreadSafe
|
|
15 public class SimpleRecord implements Record
|
|
16 {
|
|
17 private final ConcurrentHashMap<String,String> properties;
|
|
18 private final ConcurrentHashMap<String,PropertySequence> sequences;
|
|
19
|
|
20 public SimpleRecord()
|
|
21 {
|
|
22 properties = new ConcurrentHashMap<String,String>();
|
|
23 sequences = new ConcurrentHashMap<String,PropertySequence>();
|
|
24 }
|
|
25
|
|
26 @Override
|
|
27 public void setProperty(String _key, String _value)
|
|
28 {
|
|
29 properties.put(_key,_value);
|
|
30 }
|
|
31
|
|
32 @Override
|
|
33 public String getProperty(String _key)
|
|
34 {
|
|
35 return properties.get(_key);
|
|
36 }
|
|
37
|
|
38 @Override
|
|
39 public String removeProperty(String _key)
|
|
40 {
|
|
41 return properties.remove(_key);
|
|
42 }
|
|
43
|
|
44 @Override
|
|
45 public PropertySequence createSequence(String _key)
|
|
46 {
|
|
47 SimplePropertySequence seq = new SimplePropertySequence();
|
|
48 sequences.put(_key,seq);
|
|
49 return seq;
|
|
50 }
|
|
51
|
|
52 @Override
|
|
53 public PropertySequence getSequence(String _key)
|
|
54 {
|
|
55 return sequences.get(_key);
|
|
56 }
|
|
57
|
|
58 @Override
|
|
59 public PropertySequence removeSequence(String _key)
|
|
60 {
|
|
61 return sequences.remove(_key);
|
|
62 }
|
|
63
|
|
64 @Override
|
|
65 public Iterator<Pair<String, String>> properties()
|
|
66 {
|
|
67 final Set<Entry<String,String>> entries = properties.entrySet();
|
|
68 final Iterator<Entry<String,String>> itr = entries.iterator();
|
|
69 return new Iterator<Pair<String,String>>(){
|
|
70
|
|
71 @Override
|
|
72 public boolean hasNext()
|
|
73 {
|
|
74 return itr.hasNext();
|
|
75 }
|
|
76
|
|
77 @Override
|
|
78 public Pair<String, String> next()
|
|
79 {
|
|
80 Entry<String,String> ent = itr.next();
|
|
81 return new Pair<String,String>(ent.getKey(),ent.getValue());
|
|
82 }
|
|
83
|
|
84 @Override
|
|
85 public void remove()
|
|
86 {
|
|
87 throw new UnsupportedOperationException("removing is not supported");
|
|
88 }
|
|
89 };
|
|
90 }
|
|
91
|
|
92 @Override
|
|
93 public Iterator<Pair<String, PropertySequence>> sequences()
|
|
94 {
|
|
95 final Set<Entry<String,PropertySequence>> entries = sequences.entrySet();
|
|
96 final Iterator<Entry<String,PropertySequence>> itr = entries.iterator();
|
|
97 return new Iterator<Pair<String,PropertySequence>>(){
|
|
98
|
|
99 @Override
|
|
100 public boolean hasNext()
|
|
101 {
|
|
102 return itr.hasNext();
|
|
103 }
|
|
104
|
|
105 @Override
|
|
106 public Pair<String, PropertySequence> next()
|
|
107 {
|
|
108 Entry<String,PropertySequence> ent = itr.next();
|
|
109 return new Pair<String,PropertySequence> (ent.getKey(),ent.getValue());
|
|
110 }
|
|
111
|
|
112 @Override
|
|
113 public void remove()
|
|
114 {
|
|
115 throw new UnsupportedOperationException("removeing is not supported.");
|
|
116 }
|
|
117 };
|
|
118 }
|
|
119 }
|