1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 package org.codehaus.groovy.ant;
48
49 import org.apache.tools.ant.Project;
50
51 import java.util.Hashtable;
52 import java.util.Collection;
53 import java.util.Enumeration;
54 import java.util.Map;
55 import java.util.Set;
56 import java.util.Iterator;
57
58 /***
59 * @author Guillaume Laforge
60 */
61 public class AntProjectPropertiesDelegate extends Hashtable {
62
63 private Project project;
64
65 public AntProjectPropertiesDelegate(Project project) {
66 super();
67 this.project = project;
68 }
69
70 public synchronized int hashCode() {
71 return project.getProperties().hashCode();
72 }
73
74 public synchronized int size() {
75 return project.getProperties().size();
76 }
77
78 /***
79 * @throws UnsupportedOperationException is always thrown when this method is invoked. The Project properties are immutable.
80 */
81 public synchronized void clear() {
82 throw new UnsupportedOperationException("Impossible to clear the project properties.");
83 }
84
85 public synchronized boolean isEmpty() {
86 return project.getProperties().isEmpty();
87 }
88
89 public synchronized Object clone() {
90 return project.getProperties().clone();
91 }
92
93 public synchronized boolean contains(Object value) {
94 return project.getProperties().contains(value);
95 }
96
97 public synchronized boolean containsKey(Object key) {
98 return project.getProperties().containsKey(key);
99 }
100
101 public boolean containsValue(Object value) {
102 return project.getProperties().containsValue(value);
103 }
104
105 public synchronized boolean equals(Object o) {
106 return project.getProperties().equals(o);
107 }
108
109 public synchronized String toString() {
110 return project.getProperties().toString();
111 }
112
113 public Collection values() {
114 return project.getProperties().values();
115 }
116
117 public synchronized Enumeration elements() {
118 return project.getProperties().elements();
119 }
120
121 public synchronized Enumeration keys() {
122 return project.getProperties().keys();
123 }
124
125 public AntProjectPropertiesDelegate(Map t) {
126 super(t);
127 }
128
129 public synchronized void putAll(Map t) {
130 Set keySet = t.keySet();
131 for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
132 Object key = iterator.next();
133 Object value = t.get(key);
134 put(key, value);
135 }
136 }
137
138 public Set entrySet() {
139 return project.getProperties().entrySet();
140 }
141
142 public Set keySet() {
143 return project.getProperties().keySet();
144 }
145
146 public synchronized Object get(Object key) {
147 return project.getProperties().get(key);
148 }
149
150 /***
151 * @throws UnsupportedOperationException is always thrown when this method is invoked. The Project properties are immutable.
152 */
153 public synchronized Object remove(Object key) {
154 throw new UnsupportedOperationException("Impossible to remove a property from the project properties.");
155 }
156
157 public synchronized Object put(Object key, Object value) {
158 Object oldValue = null;
159 if (containsKey(key)) {
160 oldValue = get(key);
161 }
162 project.setProperty(key.toString(), value.toString());
163 return oldValue;
164 }
165 }