001 package de.java2html.util;
002
003 import java.util.Collection;
004 import java.util.Enumeration;
005 import java.util.LinkedHashMap;
006 import java.util.Map;
007 import java.util.Properties;
008 import java.util.Set;
009
010 /**
011 * A properties implementation that remembers the order of its entries.
012 *
013 * @author Markus Gebhard
014 */
015 public class LinkedProperties extends Properties {
016 private final LinkedHashMap map = new LinkedHashMap();
017
018 @Override
019 public synchronized Object put(Object key, Object value) {
020 return map.put(key, value);
021 }
022
023 @Override
024 public synchronized Object get(Object key) {
025 return map.get(key);
026 }
027
028 @Override
029 public synchronized void clear() {
030 map.clear();
031 }
032
033 @Override
034 public synchronized Object clone() {
035 throw new UnsupportedOperationException();
036 }
037
038 @Override
039 public boolean containsValue(Object value) {
040 return map.containsValue(value);
041 }
042
043 @Override
044 public synchronized boolean contains(Object value) {
045 return containsValue(value);
046 }
047
048 @Override
049 public synchronized boolean containsKey(Object key) {
050 return map.containsKey(key);
051 }
052
053 @Override
054 public synchronized Enumeration elements() {
055 return new IteratorEnumeration(map.values().iterator());
056 }
057
058 @Override
059 public Set entrySet() {
060 return map.entrySet();
061 }
062
063 @Override
064 public synchronized boolean equals(Object o) {
065 throw new UnsupportedOperationException();
066 }
067
068 @Override
069 public synchronized boolean isEmpty() {
070 return map.isEmpty();
071 }
072
073 @Override
074 public synchronized Enumeration keys() {
075 return new IteratorEnumeration(map.keySet().iterator());
076 }
077
078 @Override
079 public Set keySet() {
080 return map.keySet();
081 }
082
083 @Override
084 public Enumeration propertyNames() {
085 throw new UnsupportedOperationException();
086 }
087
088 @Override
089 public synchronized void putAll(Map t) {
090 map.putAll(t);
091 }
092 @Override
093 public synchronized Object remove(Object key) {
094 return map.remove(key);
095 }
096
097 @Override
098 public synchronized int size() {
099 return map.size();
100 }
101
102 @Override
103 public Collection values() {
104 throw new UnsupportedOperationException();
105 }
106
107 @Override
108 public String getProperty(String key) {
109 final Object oval = get(key);
110 final String sval = (oval instanceof String) ? (String)oval : null;
111 return ((sval == null) && (defaults != null)) ? defaults.getProperty(key) : sval;
112 }
113 }
|