|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
@Revision(value="$Revision: 1.10 $",
date="$Date: 2006/12/16 17:54:00 $",
tag="$Name: $")
@StaticComponent
public interface RADServiceTODO: Javadoc
TODO: Unit tests, Code review, Javadoc review, Seal/Finalize TODO: equals, hashCode, toString
| Nested Class Summary | |
|---|---|
static class |
RADService.State
An enumeration of the valid states which a RADService can be
in. |
| Nested classes/interfaces inherited from interface rcf.core.framework.component.DynamicComponent |
|---|
DynamicComponent.Abstract, DynamicComponent.Default |
| Nested classes/interfaces inherited from interface rcf.core.framework.component.DynamicBound |
|---|
DynamicBound.GUIType |
| Method Summary | |
|---|---|
rcf.core.util.graph.Vertex<RADService,?,?,?,?,?> |
communication()
Get the vertex containing this RADService, in the comminications graph. |
rcf.core.util.tree.Node<RADService,?,?,?,?,?> |
composition()
Get the tree node containing this RADService, whose parent is the RADService which is built out of this one. |
rcf.core.util.tree.Node<RADService,?,?,?,?,?> |
dependency()
Get the tree node containing this RADService, whose parent is the RADService which must be RADService.State.Running in order for this service to be running. |
boolean |
isConcrete()
Determine if this RADService is a concrete service, or simply an arbitrary abstraction built for management purposes. |
rcf.core.util.tree.Node<RADService,?,?,?,?,?> |
management()
Get the tree node containing this RADService, whose parent is the RADService which must be RADService.State.Running in order to manage this service at all. |
DynamicProperty<RADService.State> |
radServiceState()
Returns the dynamic property object for the state of this service. |
void |
refresh()
Schedule an update of the state of this object, from the state of the actual service it represents. |
void |
update(boolean schedule,
RADService.State _state)
Update the actual service to match the state held by this object. |
void |
window()
Popup the automatically generated window containing controls for the various DynamicComponent.properties() and DynamicComponent.operations()
supported by not only this interface, but by any other component interfaces
implemented by any specific RADService object. |
| Methods inherited from interface rcf.core.framework.component.DynamicComponent |
|---|
component, operations, properties |
| Methods inherited from interface rcf.core.framework.component.DynamicBound |
|---|
gui |
| Methods inherited from interface rcf.core.util.accessor.GUIAccessible |
|---|
icon, popupMenu |
| Methods inherited from interface rcf.core.framework.component.ReflectedComponent |
|---|
interfaces, isInstance |
| Methods inherited from interface rcf.core.framework.component.ReflectedBindable |
|---|
bind |
| Method Detail |
|---|
rcf.core.util.graph.Vertex<RADService,?,?,?,?,?> communication()
TODO: Javadoc
rcf.core.util.tree.Node<RADService,?,?,?,?,?> composition()
radtoolsrcf.core.util.tree.Node<RADService,?,?,?,?,?> dependency()
RADService.State.Running in order for this service to be running.
The dependency tree is meant to capture e.g. that a virtual machine cannot
be running if the physical machine it is hosted by is not running, or that
the physical machine depends on a UPS or power strip.
Dependencies for information should be modelled through the
communication graph, and composition of services
through the composition tree.
radtools
@StaticGetMethod(value="RADService.Concrete",
mode=Read)
boolean isConcrete()
true if this object represents a concrete service.
false if this object represents an arbitrary
abstraction, and does not correspond to a real service.rcf.core.util.tree.Node<RADService,?,?,?,?,?> management()
RADService.State.Running in order to manage this service at all.
The management tree is meant to capture e.g. that the management of a machine
depends on an SSH session, which might itself depend on an SSH tunnel.
radtools@StaticPropertyMethod(value="RADService.State") DynamicProperty<RADService.State> radServiceState()
RADService.State.Unknown when
management().parent().get().radServiceState().get() != RADService.State.Running.
Note that the ImmutableSingletonInterface.get() and
SingletonInterface#set() methods on the dynamic property refer to
the offline state of this service. The
refresh() and update(boolean, RADService.State) methods
can be used to synchronize this state with the state of the actual
service. SingletonInterface#set() will
schedule
a call to update(boolean, RADService.State) so that the service
state will be updated in the future.
IllegalArgumentException - If _state ==
RADService.State.Unknown or if
this service otherwise does not
support the requested state.
For example if _state ==
RADService.State.Uninstalled and
this class does not have code or
permission to uninstall the service.@StaticOperation(value="RADService.Refresh") void refresh()
AbstractRADService, this will schedule a call to
AbstractRADService.check() using
RADTools.schedule(rcf.core.concurrent.schedule.TimerTask).
void update(boolean schedule,
RADService.State _state)
schedule
an update or perform one immediately. This is necessary to avoid running
a comparatively expensive update operation as part of the simple event
handler for GUI events.
schedule - Should the update be scheduled, or performed immediately?_state - The new state to update this RADService to.@StaticOperation(value="RADService.Window") void window()
DynamicComponent.properties() and DynamicComponent.operations()
supported by not only this interface, but by any other component interfaces
implemented by any specific RADService object.Two calls to this method, will display the same window, rather than generating a new one.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||