Author: nextgens
Date: 2008-08-15 18:51:20 +0000 (Fri, 15 Aug 2008)
New Revision: 21913
Modified:
trunk/freenet/src/freenet/support/SimpleFieldSet.java
Log:
Use the 1.5 features in SimpleFieldSet too
Modified: trunk/freenet/src/freenet/support/SimpleFieldSet.java
===================================================================
--- trunk/freenet/src/freenet/support/SimpleFieldSet.java 2008-08-15
18:31:36 UTC (rev 21912)
+++ trunk/freenet/src/freenet/support/SimpleFieldSet.java 2008-08-15
18:51:20 UTC (rev 21913)
@@ -33,8 +33,8 @@
*/
public class SimpleFieldSet {
- private final Map values;
- private Map subsets;
+ private final Map<String, String> values;
+ private Map<String, SimpleFieldSet> subsets;
private String endMarker;
private final boolean shortLived;
static public final char MULTI_LEVEL_CHAR = '.';
@@ -49,7 +49,7 @@
* small.
*/
public SimpleFieldSet(boolean shortLived) {
- values = new HashMap();
+ values = new HashMap<String, String>();
subsets = null;
this.shortLived = shortLived;
}
@@ -71,9 +71,9 @@
}
public SimpleFieldSet(SimpleFieldSet sfs){
- values = new HashMap(sfs.values);
+ values = new HashMap<String, String>(sfs.values);
if(sfs.subsets != null)
- subsets = new HashMap(sfs.subsets);
+ subsets = new HashMap<String, SimpleFieldSet>(sfs.subsets);
this.shortLived = false; // it's been copied!
endMarker = sfs.endMarker;
}
@@ -173,14 +173,14 @@
public synchronized String get(String key) {
int idx = key.indexOf(MULTI_LEVEL_CHAR);
if(idx == -1)
- return (String) values.get(key);
+ return values.get(key);
else if(idx == 0)
return (subset("") == null) ? null :
subset("").get(key.substring(1));
else {
if(subsets == null) return null;
String before = key.substring(0, idx);
String after = key.substring(idx+1);
- SimpleFieldSet fs = (SimpleFieldSet)
(subsets.get(before));
+ SimpleFieldSet fs = subsets.get(before);
if(fs == null) return null;
return fs.get(after);
}
@@ -227,7 +227,7 @@
Iterator i = fs.values.keySet().iterator();
while(i.hasNext()) {
String key = (String) i.next();
- String hisVal = (String) fs.values.get(key);
+ String hisVal = fs.values.get(key);
values.put(key, hisVal); // overwrite old
}
if(fs.subsets == null) return;
@@ -235,8 +235,8 @@
i = fs.subsets.keySet().iterator();
while(i.hasNext()) {
String key = (String) i.next();
- SimpleFieldSet hisFS = (SimpleFieldSet) fs.subsets.get(key);
- SimpleFieldSet myFS = (SimpleFieldSet) subsets.get(key);
+ SimpleFieldSet hisFS = fs.subsets.get(key);
+ SimpleFieldSet myFS = subsets.get(key);
if(myFS != null) {
myFS.putAllOverwrite(hisFS);
} else {
@@ -294,14 +294,14 @@
if(value == null) return true; // valid no-op
if(value.indexOf('\n') != -1) throw new
IllegalArgumentException("A simplefieldSet can't accept newlines !");
if((idx = key.indexOf(MULTI_LEVEL_CHAR)) == -1) {
- String x = (String) values.get(key);
+ String x = values.get(key);
if(!shortLived) key = key.intern();
if(x == null || overwrite) {
values.put(key, value);
} else {
if(!allowMultiple) return false;
- values.put(key, ((String)values.get(key))+
MULTI_VALUE_CHAR +value);
+ values.put(key, (values.get(key))+
MULTI_VALUE_CHAR +value);
}
} else {
String before = key.substring(0, idx);
@@ -309,7 +309,7 @@
SimpleFieldSet fs = null;
if(subsets == null)
subsets = new HashMap();
- fs = (SimpleFieldSet) (subsets.get(before));
+ fs = subsets.get(before);
if(fs == null) {
fs = new SimpleFieldSet(shortLived);
if(!shortLived) before = before.intern();
@@ -399,7 +399,7 @@
}
private synchronized void writeToOrdered(Writer w, String prefix, boolean
noEndMarker) throws IOException {
- String[] keys = (String[]) values.keySet().toArray(new
String[values.size()]);
+ String[] keys = values.keySet().toArray(new String[values.size()]);
int i=0;
// Sort
@@ -410,7 +410,7 @@
w.write(prefix+keys[i]+KEYVALUE_SEPARATOR_CHAR+get(keys[i])+'\n');
if(subsets != null) {
- String[] orderedPrefixes = (String[])
subsets.keySet().toArray(new String[subsets.size()]);
+ String[] orderedPrefixes = subsets.keySet().toArray(new
String[subsets.size()]);
// Sort
Arrays.sort(orderedPrefixes);
@@ -429,6 +429,7 @@
}
}
+ @Override
public String toString() {
StringWriter sw = new StringWriter();
try {
@@ -461,10 +462,10 @@
if(subsets == null) return null;
int idx = key.indexOf(MULTI_LEVEL_CHAR);
if(idx == -1)
- return (SimpleFieldSet) subsets.get(key);
+ return subsets.get(key);
String before = key.substring(0, idx);
String after = key.substring(idx+1);
- SimpleFieldSet fs = (SimpleFieldSet) subsets.get(before);
+ SimpleFieldSet fs = subsets.get(before);
if(fs == null) return null;
return fs.subset(after);
}
@@ -519,7 +520,7 @@
if(subsetIterator == null ||
!subsetIterator.hasNext()) break;
String name = (String) subsetIterator.next();
if(name == null) continue;
- SimpleFieldSet fs = (SimpleFieldSet)
subsets.get(name);
+ SimpleFieldSet fs = subsets.get(name);
if(fs == null) continue;
String newPrefix = prefix + name +
MULTI_LEVEL_CHAR;
subIterator = fs.keyIterator(newPrefix);
@@ -538,7 +539,7 @@
if(subIterator != null) subIterator =
null;
if(subsetIterator != null &&
subsetIterator.hasNext()) {
String key = (String)
subsetIterator.next();
- SimpleFieldSet fs =
(SimpleFieldSet) subsets.get(key);
+ SimpleFieldSet fs =
subsets.get(key);
String newPrefix = prefix + key
+ MULTI_LEVEL_CHAR;
subIterator =
fs.keyIterator(newPrefix);
} else
@@ -571,7 +572,7 @@
subIterator = null;
if(subsetIterator != null &&
subsetIterator.hasNext()) {
String key = (String)
subsetIterator.next();
- SimpleFieldSet fs =
(SimpleFieldSet) subsets.get(key);
+ SimpleFieldSet fs =
subsets.get(key);
String newPrefix = prefix + key
+ MULTI_LEVEL_CHAR;
subIterator =
fs.keyIterator(newPrefix);
} else {
@@ -615,7 +616,7 @@
if(subsets == null) return;
String before = key.substring(0, idx);
String after = key.substring(idx+1);
- SimpleFieldSet fs = (SimpleFieldSet)
(subsets.get(before));
+ SimpleFieldSet fs = subsets.get(before);
if(fs == null) {
return;
}
@@ -646,7 +647,7 @@
} else {
String before = key.substring(0, idx);
String after = key.substring(idx+1);
- SimpleFieldSet fs = (SimpleFieldSet)
(subsets.get(before));
+ SimpleFieldSet fs = subsets.get(before);
if(fs == null) {
return;
}
@@ -669,7 +670,7 @@
}
public String[] namesOfDirectSubsets() {
- return (subsets == null) ? EMPTY_STRING_ARRAY : (String[])
subsets.keySet().toArray(new String[subsets.size()]);
+ return (subsets == null) ? EMPTY_STRING_ARRAY :
subsets.keySet().toArray(new String[subsets.size()]);
}
public static SimpleFieldSet readFrom(InputStream is, boolean
allowMultiple, boolean shortLived) throws IOException {