annotate dwtx/core/internal/jobs/ObjectMap.d @ 122:9d0585bcb7aa

Add core.jobs package
author Frank Benoit <benoit@tionex.de>
date Tue, 12 Aug 2008 02:34:21 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
122
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2006 IBM Corporation and others.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwtx.core.internal.jobs.ObjectMap;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwt.dwthelper.utils;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwtx.dwtxhelper.Collection;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 import dwtx.core.internal.jobs.StringPool;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 * A specialized map implementation that is optimized for a small set of object
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 * keys.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 *
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 * Implemented as a single array that alternates keys and values.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 *
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 * Note: This class is copied from dwtx.core.resources
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 public class ObjectMap : Map {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 // 8 attribute keys, 8 attribute values
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 protected static const int DEFAULT_SIZE = 16;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 protected static const int GROW_SIZE = 10;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 protected int count = 0;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 protected Object[] elements = null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * Creates a new object map.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 *
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * @param initialCapacity
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * The initial number of elements that will fit in the map.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 public this(int initialCapacity) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 if (initialCapacity > 0)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 elements = new Object[Math.max(initialCapacity * 2, 0)];
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * Creates a new object map of the same size as the given map and populate
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 * it with the key/attribute pairs found in the map.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 *
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 * @param map
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 * The entries in the given map will be added to the new map.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 public this(Map map) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 this(map.size());
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 putAll(map);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * @see Map#clear()
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 public void clear() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 elements = null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 count = 0;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * @see java.lang.Object#clone()
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 public Object clone() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 return new ObjectMap(this);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * @see Map#containsKey(java.lang.Object)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 public bool containsKey(Object key) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 if (elements is null || count is 0)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 return false;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 for (int i = 0; i < elements.length; i = i + 2)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 if (elements[i] !is null && elements[i].opEquals(key))
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 return true;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 return false;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 public bool containsKey(String key) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 return containsKey(stringcast(key));
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * @see Map#containsValue(java.lang.Object)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 public bool containsValue(Object value) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 if (elements is null || count is 0)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 return false;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 for (int i = 1; i < elements.length; i = i + 2)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 if (elements[i] !is null && elements[i].opEquals(value))
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 return true;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 return false;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * @see Map#entrySet()
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 *
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * Note: This implementation does not conform properly to the
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * specification in the Map interface. The returned collection will not
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * be bound to this map and will not remain in sync with this map.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 public Set entrySet() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 return count is 0 ? Collections.EMPTY_SET : toHashMap().entrySet();
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 * @see Object#equals(java.lang.Object)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 public override int opEquals(Object o) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 if (!(cast(Map)o ))
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 return false;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 Map other = cast(Map) o;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 //must be same size
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 if (count !is other.size())
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 return false;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 //keysets must be equal
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 if (!(cast(Object)keySet()).opEquals(cast(Object)other.keySet()))
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 return false;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 //values for each key must be equal
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 for (int i = 0; i < elements.length; i = i + 2) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 if (elements[i] !is null && (!elements[i + 1].opEquals(other.get(elements[i]))))
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 return false;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 return true;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * @see Map#get(java.lang.Object)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 public Object get(Object key) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 if (elements is null || count is 0)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 return null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 for (int i = 0; i < elements.length; i = i + 2)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 if (elements[i] !is null && elements[i].opEquals(key))
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 return elements[i + 1];
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 return null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 public Object get(String key) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 return get(stringcast(key));
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 * The capacity of the map has been exceeded, grow the array by GROW_SIZE to
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 * accomodate more entries.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 protected void grow() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 Object[] expanded = new Object[elements.length + GROW_SIZE];
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 System.arraycopy(elements, 0, expanded, 0, elements.length);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 elements = expanded;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * @see Object#hashCode()
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 public override hash_t toHash() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 int hash = 0;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 for (int i = 0; i < elements.length; i = i + 2) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 if (elements[i] !is null) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 hash += elements[i].toHash();
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 return hash;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 * @see Map#isEmpty()
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 public bool isEmpty() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 return count is 0;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 * Returns all keys in this table as an array.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 public String[] keys() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 String[] result = new String[count];
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 int next = 0;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 for (int i = 0; i < elements.length; i = i + 2)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 if (elements[i] !is null)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 result[next++] = stringcast( elements[i] );
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 return result;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 * @see Map#keySet()
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 *
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 * Note: This implementation does not conform properly to the
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 * specification in the Map interface. The returned collection will not
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 * be bound to this map and will not remain in sync with this map.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 public Set keySet() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 Set result = new HashSet(size());
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 for (int i = 0; i < elements.length; i = i + 2) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 if (elements[i] !is null) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 result.add(elements[i]);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 return result;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 * @see Map#put(java.lang.Object, java.lang.Object)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 public Object put(Object key, Object value) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 if (key is null)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 throw new NullPointerException();
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 if (value is null)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 return remove(key);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 // handle the case where we don't have any attributes yet
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 if (elements is null)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 elements = new Object[DEFAULT_SIZE];
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 if (count is 0) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 elements[0] = key;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 elements[1] = value;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219 count++;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 return null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 int emptyIndex = -1;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 // replace existing value if it exists
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 for (int i = 0; i < elements.length; i += 2) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 if (elements[i] !is null) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 if (elements[i].opEquals(key)) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 Object oldValue = elements[i + 1];
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 elements[i + 1] = value;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 return oldValue;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232 } else if (emptyIndex is -1) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 // keep track of the first empty index
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 emptyIndex = i;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 // this will put the emptyIndex greater than the size but
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 // that's ok because we will grow first.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 if (emptyIndex is -1)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 emptyIndex = count * 2;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242 // otherwise add it to the list of elements.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 // grow if necessary
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 if (elements.length <= (count * 2))
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 grow();
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 elements[emptyIndex] = key;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 elements[emptyIndex + 1] = value;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 count++;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 return null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 public Object put(String key, Object value) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 return put( stringcast(key), value );
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 public Object put(Object key, String value) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 return put( key, stringcast(value) );
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 public Object put(String key, String value) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 return put( stringcast(key), stringcast(value) );
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 * @see Map#putAll(java.util.Map)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 public void putAll(Map map) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 for (Iterator i = map.keySet().iterator(); i.hasNext();) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 Object key = i.next();
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 Object value = map.get(key);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 put(key, value);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 * @see Map#remove(java.lang.Object)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 public Object remove(Object key) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276 if (elements is null || count is 0)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 return null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 for (int i = 0; i < elements.length; i = i + 2) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 if (elements[i] !is null && elements[i].opEquals(key)) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 elements[i] = null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 Object result = elements[i + 1];
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 elements[i + 1] = null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 count--;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284 return result;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 return null;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 public Object remove(String key) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 return remove( stringcast(key));
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293 /* (non-Javadoc
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 * Method declared on IStringPoolParticipant
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 public void shareStrings(StringPool set) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 //copy elements for thread safety
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 Object[] array = elements;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 if (array is null)
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 return;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 for (int i = 0; i < array.length; i++) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302 Object o = array[i];
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 if (cast(ArrayWrapperString)o )
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 array[i] = stringcast(set.add(stringcast( o)));
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309 * @see Map#size()
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
310 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311 public int size() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 return count;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 * Creates a new hash map with the same contents as this map.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 private HashMap toHashMap() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 HashMap result = new HashMap(size());
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 for (int i = 0; i < elements.length; i = i + 2) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 if (elements[i] !is null) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 result.put(elements[i], elements[i + 1]);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 return result;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 /**
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 * @see Map#values()
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330 *
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 * Note: This implementation does not conform properly to the
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 * specification in the Map interface. The returned collection will not
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 * be bound to this map and will not remain in sync with this map.
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 */
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 public Collection values() {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 Set result = new HashSet(size());
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 for (int i = 1; i < elements.length; i = i + 2) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 if (elements[i] !is null) {
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 result.add(elements[i]);
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 return result;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 public int opApply (int delegate(ref Object value) dg){
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 implMissing(__FILE__, __LINE__ );
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 return 0;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 public int opApply (int delegate(ref Object key, ref Object value) dg){
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 implMissing(__FILE__, __LINE__ );
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 return 0;
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 }
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353
9d0585bcb7aa Add core.jobs package
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354 }