com.netflix.config
Class PropertyWrapper<V>

java.lang.Object
  extended by com.netflix.config.PropertyWrapper<V>
Type Parameters:
V - The type of the DynamicProperty
Direct Known Subclasses:
DynamicBooleanProperty, DynamicDoubleProperty, DynamicFloatProperty, DynamicIntProperty, DynamicLongProperty, DynamicStringProperty

public abstract class PropertyWrapper<V>
extends java.lang.Object

A wrapper around DynamicProperty and associates it with a type.


Field Summary
protected  V defaultValue
           
protected  DynamicProperty prop
           
 
Constructor Summary
protected PropertyWrapper(java.lang.String propName, V defaultValue)
           
 
Method Summary
 void addCallback(java.lang.Runnable callback)
          Add the callback to be triggered when the value of the property is changed
 long getChangedTimestamp()
          Gets the time (in milliseconds past the epoch) when the property was last set/changed.
 java.lang.String getName()
           
abstract  V getValue()
          Get current typed value of the property.
protected  void propertyChanged()
          Called when the property value is updated.
static void registerSubClassWithNoCallback(java.lang.Class<? extends PropertyWrapper<?>> c)
          By default, a subclass of PropertyWrapper will automatically register propertyChanged() as a callback for property value change.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

prop

protected DynamicProperty prop

defaultValue

protected V defaultValue
Constructor Detail

PropertyWrapper

protected PropertyWrapper(java.lang.String propName,
                          V defaultValue)
Method Detail

registerSubClassWithNoCallback

public static final void registerSubClassWithNoCallback(java.lang.Class<? extends PropertyWrapper<?>> c)
By default, a subclass of PropertyWrapper will automatically register propertyChanged() as a callback for property value change. This method provide a way for a subclass to avoid this overhead if it is not interested to get callback.

Parameters:
c -

getName

public java.lang.String getName()

propertyChanged

protected void propertyChanged()
Called when the property value is updated. The default does nothing. Subclasses are free to override this if desired.


getChangedTimestamp

public long getChangedTimestamp()
Gets the time (in milliseconds past the epoch) when the property was last set/changed.


addCallback

public void addCallback(java.lang.Runnable callback)
Add the callback to be triggered when the value of the property is changed

Parameters:
callback -

getValue

public abstract V getValue()
Get current typed value of the property.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object