This is an Immutable adapter of Properties class.
package cz.dynawest.util;
import java.io.*;
import java.util.*;
/**
* Immutable version of Properties object.
* Instances work transparently as Properties object
* unless you try to change it.
*
* Calling any method that can potentially change the properties
* throws UnsupportedOperationException("Immutable Properties object - can't be changed.");
*
* @author Ondřej Žižka
* @see java.util.Properties
* @version 1.0
*/
public class ImmutableProperties extends java.util.Properties {
/**
* Constructs an immutable copy of the given Properties object.
* @param original Properties object to copy.
*/
public ImmutableProperties( Properties original ) {
//super.defaults = original;
super.putAll( original );
}
// -- Properties overrides --
@Override
public Object setProperty( String key, String val ){
throw new UnsupportedOperationException("Immutable Properties object - can't be changed.");
}
@Override
public synchronized void load( Reader arg0 ) throws IOException {
throw new UnsupportedOperationException("Immutable Properties object - can't be changed.");
}
@Override
public synchronized void load( InputStream arg0 ) throws IOException {
throw new UnsupportedOperationException("Immutable Properties object - can't be changed.");
}
@Override
public synchronized void loadFromXML( InputStream arg0 ) throws IOException, InvalidPropertiesFormatException {
throw new UnsupportedOperationException("Immutable Properties object - can't be changed.");
}
// -- Hashtable overrides --
@Override
public synchronized void clear() {
throw new UnsupportedOperationException("Immutable Properties object - can't be changed.");
}
@Override
public synchronized Object put( Object arg0, Object arg1 ) {
throw new UnsupportedOperationException("Immutable Properties object - can't be changed.");
}
@Override
public synchronized void putAll( Map<? extends Object, ? extends Object> arg0 ) {
throw new UnsupportedOperationException("Immutable Properties object - can't be changed.");
}
@Override
public synchronized Object remove( Object arg0 ) {
throw new UnsupportedOperationException("Immutable Properties object - can't be changed.");
}
}// class ImmutableProperties