Package org.jmacs

core classes.


Interface Summary
IControlsGui control panel GUI, for controlling a given device.
IControlsGui.IContext passed to IControlGuis, allowing them to submit commands.
IDi device interface (DI).
IDi.IDriver device-interface (DI) driver.
IDi.IDriver.IClient wishes to be able to do all of the things which an IDi.IDriver.ISampler, IDi.IDriver.ISubscriber and IDi.IDriver.IControl can do.
IDi.IDriver.IClient.IContext as passed to IDi.IDriver.IClients.
IDi.IDriver.IContext driver context.
IDi.IDriver.IControl wishes to be able to send commands to other DIs.
IDi.IDriver.IControl.IContext as passed to IDi.IDriver.IControls.
IDi.IDriver.ISampler wishes to be able to request the status of another DI.
IDi.IDriver.ISampler.IContext as passed to IDi.IDriver.ISamplers.
IDi.IDriver.ISubscriber wishes to be able to request to receive status samples from other DIs automatically.
IDi.IDriver.ISubscriber.IContext as passed to IDi.IDriver.ISubscriber.
IDi.States of the IDi.
IExceptionHandler exception handler.
IMonitorGui monitor window GUI, for displaying the device's status.
IMonitorGui.IContext passed to monitor windows implementing IMonitorGui.IContextAware, allowing them to submit commands.
IMonitorGui.IContextAware have the IMonitorGui also implement this if it is to submit commands.
IResultHandler result handler.
ISamplingDependent for implementation by IDi.IDrivers dependent on status-sampling parameters.

Class Summary
CloneableSerializable convenience that may be used as the base class of status classes.
IDi.AbstractFactory for creating IDi instances.
IDi.Util utility class.

Exception Summary
ClientDiException thrown by IDi.IDriver context methods.
CmdException as thrown by (IDi.IDriver.IControl.IContext.executeCmd(String, Serializable)).
CmdExecutionException wraps any exception, apart from CmdNotRecognisedException, thrown by IDi.IDriver.executeCmd(Serializable, boolean, String) impl'ns.
CmdNotRecognisedException as may be thrown when impl'ting IDi.IDriver.executeCmd(Serializable, boolean, String).
CmdUsageException as may be thrown when impl'ting IDi.IDriver.executeCmd(Serializable, boolean, String).
DiNameTakenException thrown by IDi.register() if the name is already taken by another DI
NoSuchServerDiException thrown by IDi.IDriver context methods if the intended server-DI isn't currently registered.
NotRegisteredException thrown by IDi.IDriver context methods if the DI is not registered with a target.
TargetUnavailableException thrown by IDi.register() if target unavailable.

Package org.jmacs Description

core classes. This package, and more specifically the class, IDi.AbstractFactory, should be the starting point for all but those wishing to define or deploy a 'programmable device' (who should use the org.jmacs.pd package instead).

The JMACS implementer starts by implementing the above class.

The device-interface developer must provide all arguments required by one of its createDi methods, which requires implementing IDi.IDriver directly. For an example, please visit

The device-interface deployer should consult IDi.AbstractFactory.getInstance() and IDi, which both describe setting runtime configuration properties (including org.jmacs.IDi.AbstractFactory) and a security policy.