henplus.property
Class PropertyHolder

java.lang.Object
  extended by henplus.property.PropertyHolder
Direct Known Subclasses:
EnumeratedPropertyHolder

public abstract class PropertyHolder
extends Object

A Property is something that has a value and is bound to some name. The binding to a name is done elsewhere, the PropertyHolder holds the value and informs a callback method on change. It provides a simple way of completing values, if possible to aid the shell. The PropertyHolder is abstract, since it needs to be overwritten to get informed on changes of its value. Since a property is always special in a sense that changing the property does change some internal state, possibly by calling several methods, code is always executed on change.


Field Summary
protected  String _propertyValue
           
 
Constructor Summary
protected PropertyHolder()
          construct a PropertyHolder with an empty value.
protected PropertyHolder(String initialValue)
           
 
Method Summary
 Iterator completeValue(String partialValue)
          given a partial value of a to-be-set value, this will return an iterator of possible values possible at that point or 'null' if no such completion can take place.
abstract  String getDefaultValue()
           
 String getLongDescription()
          returns a longer string describing this property.
 String getShortDescription()
          return a short string describing the purpose of this property Should contain no newline, no leading spaces and should not be longer than 40 characters.
 String getValue()
          The canonicalized value of the value of this Property.
protected abstract  String propertyChanged(String newValue)
          is called, when the property changes.
 void setValue(String newValue)
          set the new value of this property.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_propertyValue

protected String _propertyValue
Constructor Detail

PropertyHolder

protected PropertyHolder()
construct a PropertyHolder with an empty value.


PropertyHolder

protected PropertyHolder(String initialValue)
Method Detail

setValue

public void setValue(String newValue)
              throws Exception
set the new value of this property. If changing the property does not work for e.g. a constraint propblem, then this method will throw an Exception and the property is not set. Also, after calling setValue(), the internal value of the property might not exactly the value given, but some canonicalized form returned by the propertyChanged(String) listener method.

Parameters:
newValue - the new value to be set.
Throws:
Exception

getValue

public String getValue()
The canonicalized value of the value of this Property.


getDefaultValue

public abstract String getDefaultValue()

propertyChanged

protected abstract String propertyChanged(String newValue)
                                   throws Exception
is called, when the property changes. This method is supposed to do whatever is needed on change of the property. It returns a canonicalized version of the new value, or the value itself, if it is cool with it. If the value is not of the expected range, then this method must throw an Exception.

Parameters:
newValue - a new value of the property. The old value is still accessible with the getValue() method.
Returns:
the canonicalized value. e.g. for a Property taking boolean values, it returns all '1', '0', 'on', 'off' as 'true', 'false'.
Throws:
Exception

completeValue

public Iterator completeValue(String partialValue)
given a partial value of a to-be-set value, this will return an iterator of possible values possible at that point or 'null' if no such completion can take place.

Parameters:
partialValue - a partial given value
Returns:
an Iterator of values that all start with the given String or null if no such completion exists.

getShortDescription

public String getShortDescription()
return a short string describing the purpose of this property Should contain no newline, no leading spaces and should not be longer than 40 characters.


getLongDescription

public String getLongDescription()
returns a longer string describing this property. This should return a String describing details of the given command. This String should start with a TAB-character in each new line (the first line is a new line). The last line should not end with newline. Should fit on a 80 character width terminal.



? 1997..2006 Henner Zeller