rcf.core.framework.component
Class AbstractDynamicProperty<T>

java.lang.Object
  extended by rcf.core.concurrent.events.AbstractEventSource
      extended by rcf.core.framework.component.AbstractDynamicProperty<T>
Type Parameters:
T -
All Implemented Interfaces:
EventSource, rcf.core.concurrent.primitives.Latch<T>, DynamicBound, DynamicProperty<T>, ReflectedBindable<DynamicProperty>, ReflectedProperty, rcf.core.util.accessor.GUIAccessible, ImmutableSingletonInterface<T>, SingletonInterface<T>
Direct Known Subclasses:
AbstractRADService.AbstractRADServiceState, DefaultDynamicProperty, DynamicProperty.Default

@Revision(value="$Revision: 1.8 $",
          date="$Date: 2006/12/16 05:17:22 $",
          tag="$Name:  $")
public abstract class AbstractDynamicProperty<T>
extends AbstractEventSource
implements DynamicProperty<T>

TODO: Javadoc

TODO: Unit tests, Code review, Javadoc review, Seal/Finalize TODO: equals, hashCode, toString

Version:
$Revision: 1.8 $
Author:
Greg Gibeling

Nested Class Summary
static class AbstractDynamicProperty.BooleanUpdate
          TODO: Javadoc
static class AbstractDynamicProperty.DoubleUpdate
          TODO: Javadoc
static class AbstractDynamicProperty.EnumComboUpdate<T>
          TODO: Javadoc
static class AbstractDynamicProperty.EnumRadioUpdate<T>
          TODO: Javadoc
static class AbstractDynamicProperty.IntegerUpdate
          TODO: Javadoc
static class AbstractDynamicProperty.StringUpdate
          TODO: Javadoc
 
Nested classes/interfaces inherited from interface rcf.core.framework.component.DynamicProperty
DynamicProperty.Default<T>
 
Nested classes/interfaces inherited from interface rcf.core.framework.component.DynamicBound
DynamicBound.GUIType
 
Nested classes/interfaces inherited from interface rcf.core.concurrent.primitives.Latch
rcf.core.concurrent.primitives.Latch.LatchCondition<T>
 
Field Summary
protected  DynamicComponent component
          TODO: Javadoc
protected static SoftReference<rcf.core.util.collection.ImmutableCollection<Class>> dynamicPropertyEventTypes
          TODO: Javadoc
protected  Type type
          TODO: Javadoc
 
Fields inherited from class rcf.core.concurrent.events.AbstractEventSource
syndicate
 
Constructor Summary
AbstractDynamicProperty(DynamicComponent _component, Type _type)
          TODO: Javadoc
 
Method Summary
 DynamicProperty bind(Object o)
          TODO: Javadoc Return a dynamic bound interface representing this reflected bindable bound to the specified object, assuming the object is an instance of the appropriate reflected component.
 DynamicComponent component()
          TODO: Javadoc
protected static rcf.core.util.collection.ImmutableCollection<Class> dynamicPropertyEventTypes()
          TODO: Javadoc
 rcf.core.util.collection.ImmutableCollection<Class> events()
          Return an immutable collection of all the classes of Events which this source will generate and syndicate.
 rcf.core.concurrent.primitives.Latch.LatchCondition<T> expect(T t)
           
<X> X
getAs(Class<X> _class)
          TODO: Javadoc Get this property, including performing any necessary type checking or casts.
 JComponent gui(DynamicBound.GUIType type)
          TODO: Javadoc
 Icon icon()
           
 PropertyMode mode()
          TODO: Javadoc Determine if this property is readable, writeable, neither or both.
 JPopupMenu popupMenu()
           
<X> X
setAs(X a, Class<X> _class)
          TODO: Javadoc Set this property, including performing any necessary type checking or casts.
 Type type()
          TODO: Javadoc The type of this property
 PropertyUse use()
          TODO: Javadoc The use of this property.
 
Methods inherited from class rcf.core.concurrent.events.AbstractEventSource
createdSyndicate, destroyedSyndicate, getSequenceNumber, incSequenceNumber, isSyndicated, syndicate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface rcf.core.framework.component.ReflectedProperty
name
 
Methods inherited from interface rcf.core.util.groups.SingletonInterface
set
 
Methods inherited from interface rcf.core.util.groups.ImmutableSingletonInterface
get
 
Methods inherited from interface rcf.core.concurrent.events.EventSource
getSequenceNumber, incSequenceNumber, isSyndicated, syndicate
 
Methods inherited from interface rcf.core.util.groups.ImmutableSingletonInterface
get
 

Field Detail

dynamicPropertyEventTypes

protected static SoftReference<rcf.core.util.collection.ImmutableCollection<Class>> dynamicPropertyEventTypes
TODO: Javadoc


component

protected final DynamicComponent component
TODO: Javadoc


type

protected final Type type
TODO: Javadoc

Constructor Detail

AbstractDynamicProperty

public AbstractDynamicProperty(DynamicComponent _component,
                               Type _type)
TODO: Javadoc

Parameters:
_type -
Method Detail

dynamicPropertyEventTypes

protected static final rcf.core.util.collection.ImmutableCollection<Class> dynamicPropertyEventTypes()
TODO: Javadoc

Returns:

bind

public DynamicProperty bind(Object o)
Description copied from interface: ReflectedBindable
TODO: Javadoc Return a dynamic bound interface representing this reflected bindable bound to the specified object, assuming the object is an instance of the appropriate reflected component. ReflectedComponent.isInstance(Object), component().isInstance(o) must be true.

Specified by:
bind in interface ReflectedBindable<DynamicProperty>
Returns:

component

public DynamicComponent component()
Description copied from interface: DynamicBound
TODO: Javadoc

Specified by:
component in interface DynamicBound
Specified by:
component in interface DynamicProperty<T>
Specified by:
component in interface ReflectedBindable<DynamicProperty>
Returns:

events

public rcf.core.util.collection.ImmutableCollection<Class> events()
Description copied from interface: EventSource
Return an immutable collection of all the classes of Events which this source will generate and syndicate. This can be used to check if a source will be will to generate specific events of interest to a potential sink.

Specified by:
events in interface EventSource
Returns:
An immutable collection of all the classes of events which this source will generate and syndicate.

expect

public rcf.core.concurrent.primitives.Latch.LatchCondition<T> expect(T t)
Specified by:
expect in interface rcf.core.concurrent.primitives.Latch<T>

getAs

public <X> X getAs(Class<X> _class)
Description copied from interface: DynamicProperty
TODO: Javadoc Get this property, including performing any necessary type checking or casts.

Specified by:
getAs in interface DynamicProperty<T>
Returns:
See Also:
ImmutableSingletonInterface.get(), ReflectedProperty.type()

gui

public JComponent gui(DynamicBound.GUIType type)
Description copied from interface: DynamicBound
TODO: Javadoc

Specified by:
gui in interface DynamicBound
Returns:

icon

public Icon icon()
Specified by:
icon in interface rcf.core.util.accessor.GUIAccessible

mode

public PropertyMode mode()
Description copied from interface: ReflectedProperty
TODO: Javadoc Determine if this property is readable, writeable, neither or both. Notice that the existence of a StaticGetMethod or StaticSetMethod annotated method may override the value specified here. It is an error to specify that a final field is writeable, and it is a warning to specify that e.g. a field is not readable when it has a StaticGetMethod method or not writeable with a StaticSetMethod method.

Specified by:
mode in interface ReflectedProperty

popupMenu

public JPopupMenu popupMenu()
Specified by:
popupMenu in interface rcf.core.util.accessor.GUIAccessible

setAs

public <X> X setAs(X a,
                   Class<X> _class)
Description copied from interface: DynamicProperty
TODO: Javadoc Set this property, including performing any necessary type checking or casts.

Specified by:
setAs in interface DynamicProperty<T>
Returns:
See Also:
SingletonInterface.set(Object), ReflectedProperty.type()

type

public Type type()
Description copied from interface: ReflectedProperty
TODO: Javadoc The type of this property

Specified by:
type in interface ReflectedProperty
Returns:

use

public PropertyUse use()
Description copied from interface: ReflectedProperty
TODO: Javadoc The use of this property. Must be PropertyType.Option if there are any matching StaticGetMethod or StaticSetMethod annotations.

Specified by:
use in interface ReflectedProperty