public abstract class AbstractHobsonPlugin extends java.lang.Object implements HobsonPlugin, EventLoopExecutor
Constructor and Description |
---|
AbstractHobsonPlugin(java.lang.String pluginId,
java.lang.String version,
java.lang.String description) |
Modifier and Type | Method and Description |
---|---|
protected void |
addJobStatusMessage(java.lang.String msg,
java.lang.Object props) |
protected void |
deleteDeviceProxy(java.lang.String deviceId) |
Future |
executeInEventLoop(java.lang.Runnable runnable)
Execute a task using an event loop.
|
protected void |
executeTask(TaskContext context) |
protected AccessManager |
getAccessManager() |
protected ActionClass |
getActionClass(java.lang.String actionId) |
protected java.util.Collection<ActionClass> |
getActionClasses() |
PropertyContainerClass |
getConfigurationClass() |
protected abstract TypedProperty[] |
getConfigurationPropertyTypes()
Returns an array of configuration properties the plugin supports.
|
PluginContext |
getContext() |
protected java.io.File |
getDataDirectory()
Returns a File for the plugin's directory sandbox.
|
protected java.io.File |
getDataFile(java.lang.String filename)
Returns a File located in the plugin's directory sandbox.
|
protected java.lang.String |
getDescription() |
HobsonLocalPluginDescriptor |
getDescriptor() |
protected java.util.Collection<DeviceAdvertisement> |
getDeviceAdvertisementSnapshot(java.lang.String protocolId)
Requests all currently known device advertisements.
|
java.lang.Object |
getDeviceConfigurationProperty(java.lang.String deviceId,
java.lang.String name) |
java.lang.Long |
getDeviceLastCheckin(java.lang.String deviceId) |
protected java.util.Collection<HobsonDeviceProxy> |
getDeviceProxies() |
protected HobsonDeviceProxy |
getDeviceProxy(java.lang.String deviceId) |
protected DeviceVariableState |
getDeviceVariableState(DeviceVariableContext dvctx)
Returns the device variable state for a device not created by this plugin.
|
DeviceVariableState |
getDeviceVariableState(java.lang.String deviceId,
java.lang.String name)
Returns the device variable state for a device published by this plugin.
|
protected DiscoManager |
getDiscoManager() |
EventLoopExecutor |
getEventLoopExecutor() |
protected HubManager |
getHubManager() |
protected HobsonHub |
getLocalHub() |
protected abstract java.lang.String |
getName() |
protected java.util.Collection<HobsonDeviceDescriptor> |
getPublishedDeviceDescriptions() |
long |
getRefreshInterval() |
PluginStatus |
getStatus() |
protected TaskManager |
getTaskManager() |
TaskProvider |
getTaskProvider() |
protected PluginType |
getType() |
protected boolean |
hasDeviceProxy(java.lang.String deviceId) |
protected boolean |
hasDeviceVariable(java.lang.String deviceId,
java.lang.String name) |
protected boolean |
hasDeviceVariableState(DeviceVariableContext dvctx) |
boolean |
hasDeviceVariableState(java.lang.String deviceId,
java.lang.String name)
Returns whether this device has published a variable.
|
boolean |
hasTaskProvider() |
void |
onDeviceConfigurationUpdateEvent(DeviceConfigurationUpdateEvent event) |
void |
onDeviceDeletedEvent(DeviceDeletedEvent event) |
void |
onDeviceVariablesUpdate(java.util.Collection<DeviceVariableDescriptor> vars) |
void |
onHandleTaskEvents(TaskEvent event) |
abstract void |
onPluginConfigurationUpdate(PropertyContainer config) |
void |
onPluginConfigurationUpdateEvent(PluginConfigurationUpdateEvent event) |
void |
onRefresh() |
void |
onSetDeviceVariables(DeviceVariablesUpdateRequestEvent event) |
void |
postEvent(HobsonEvent event) |
void |
publishActionProvider(ActionProvider provider) |
void |
publishDeviceAdvertisement(DeviceAdvertisement advertisement,
boolean internal)
Publishes a new DeviceAdvertisement.
|
protected Future |
publishDeviceProxy(HobsonDeviceProxy proxy) |
protected Future |
publishDeviceProxy(HobsonDeviceProxy proxy,
java.util.Map<java.lang.String,java.lang.Object> config) |
protected void |
publishTaskConditionClass(TaskConditionClass conditionClass) |
void |
scheduleAtFixedRateInEventLoop(java.lang.Runnable runnable,
long initialDelay,
long time,
java.util.concurrent.TimeUnit unit) |
void |
setAccessManager(AccessManager accessManager) |
void |
setActionManager(ActionManager actionManager) |
void |
setDeviceConfigurationProperties(DeviceContext dctx,
java.util.Map<java.lang.String,java.lang.Object> values) |
void |
setDeviceConfigurationProperty(DeviceContext dctx,
java.lang.String name,
java.lang.Object value) |
void |
setDeviceManager(DeviceManager deviceManager) |
void |
setDiscoManager(DiscoManager discoManager) |
void |
setEventManager(EventManager eventManager) |
protected void |
setGlobalVariable(java.lang.String name,
java.lang.Object value,
long timestamp) |
protected void |
setGlobalVariables(java.util.Map<java.lang.String,java.lang.Object> values,
long timestamp) |
void |
setHubManager(HubManager hubManager) |
protected void |
setPluginConfigurationProperty(PluginContext ctx,
java.lang.String name,
java.lang.Object value)
Sets a plugin configuration property.
|
void |
setPluginManager(PluginManager pluginManager) |
protected void |
setStatus(PluginStatus status) |
void |
setTaskManager(TaskManager taskManager) |
void |
setTaskProvider(TaskProvider taskProvider) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
onShutdown, onStartup
public AbstractHobsonPlugin(java.lang.String pluginId, java.lang.String version, java.lang.String description)
public PluginContext getContext()
getContext
in interface HobsonPlugin
public PropertyContainerClass getConfigurationClass()
getConfigurationClass
in interface HobsonPlugin
protected void setStatus(PluginStatus status)
public HobsonLocalPluginDescriptor getDescriptor()
getDescriptor
in interface HobsonPlugin
public PluginStatus getStatus()
getStatus
in interface HobsonPlugin
public void onHandleTaskEvents(TaskEvent event)
public void onDeviceConfigurationUpdateEvent(DeviceConfigurationUpdateEvent event)
public void onDeviceDeletedEvent(DeviceDeletedEvent event)
public void onPluginConfigurationUpdateEvent(PluginConfigurationUpdateEvent event)
public abstract void onPluginConfigurationUpdate(PropertyContainer config)
protected DeviceVariableState getDeviceVariableState(DeviceVariableContext dvctx)
dvctx
- the device variable contextprotected boolean hasDeviceVariableState(DeviceVariableContext dvctx)
public void setTaskProvider(TaskProvider taskProvider)
protected abstract java.lang.String getName()
protected java.lang.String getDescription()
protected PluginType getType()
protected boolean hasDeviceProxy(java.lang.String deviceId)
protected HobsonDeviceProxy getDeviceProxy(java.lang.String deviceId)
protected java.util.Collection<HobsonDeviceProxy> getDeviceProxies()
protected ActionClass getActionClass(java.lang.String actionId)
protected java.util.Collection<ActionClass> getActionClasses()
public java.lang.Object getDeviceConfigurationProperty(java.lang.String deviceId, java.lang.String name)
getDeviceConfigurationProperty
in interface HobsonPlugin
public java.lang.Long getDeviceLastCheckin(java.lang.String deviceId)
getDeviceLastCheckin
in interface HobsonPlugin
public DeviceVariableState getDeviceVariableState(java.lang.String deviceId, java.lang.String name)
HobsonPlugin
getDeviceVariableState
in interface HobsonPlugin
deviceId
- the device IDname
- the variable namepublic boolean hasDeviceVariableState(java.lang.String deviceId, java.lang.String name)
HobsonPlugin
hasDeviceVariableState
in interface HobsonPlugin
deviceId
- the device IDname
- the variable namepublic boolean hasTaskProvider()
hasTaskProvider
in interface HobsonPlugin
public long getRefreshInterval()
getRefreshInterval
in interface HobsonPlugin
public TaskProvider getTaskProvider()
getTaskProvider
in interface HobsonPlugin
public EventLoopExecutor getEventLoopExecutor()
getEventLoopExecutor
in interface HobsonPlugin
public void postEvent(HobsonEvent event)
postEvent
in interface HobsonPlugin
public void onDeviceVariablesUpdate(java.util.Collection<DeviceVariableDescriptor> vars)
onDeviceVariablesUpdate
in interface HobsonPlugin
public void onRefresh()
onRefresh
in interface HobsonPlugin
public void onSetDeviceVariables(DeviceVariablesUpdateRequestEvent event)
public void publishActionProvider(ActionProvider provider)
publishActionProvider
in interface HobsonPlugin
protected void publishTaskConditionClass(TaskConditionClass conditionClass)
public void scheduleAtFixedRateInEventLoop(java.lang.Runnable runnable, long initialDelay, long time, java.util.concurrent.TimeUnit unit)
scheduleAtFixedRateInEventLoop
in interface HobsonPlugin
public void setDeviceConfigurationProperty(DeviceContext dctx, java.lang.String name, java.lang.Object value)
setDeviceConfigurationProperty
in interface HobsonPlugin
public void setDeviceConfigurationProperties(DeviceContext dctx, java.util.Map<java.lang.String,java.lang.Object> values)
setDeviceConfigurationProperties
in interface HobsonPlugin
public void setAccessManager(AccessManager accessManager)
setAccessManager
in interface HobsonPlugin
public void setDeviceManager(DeviceManager deviceManager)
setDeviceManager
in interface HobsonPlugin
public void setDiscoManager(DiscoManager discoManager)
setDiscoManager
in interface HobsonPlugin
public void setEventManager(EventManager eventManager)
setEventManager
in interface HobsonPlugin
public void setHubManager(HubManager hubManager)
setHubManager
in interface HobsonPlugin
public void setActionManager(ActionManager actionManager)
setActionManager
in interface HobsonPlugin
public void setPluginManager(PluginManager pluginManager)
setPluginManager
in interface HobsonPlugin
public void setTaskManager(TaskManager taskManager)
setTaskManager
in interface HobsonPlugin
public Future executeInEventLoop(java.lang.Runnable runnable)
EventLoopExecutor
executeInEventLoop
in interface EventLoopExecutor
runnable
- a task to executeprotected abstract TypedProperty[] getConfigurationPropertyTypes()
protected java.io.File getDataDirectory()
protected java.io.File getDataFile(java.lang.String filename)
filename
- the filenameprotected boolean hasDeviceVariable(java.lang.String deviceId, java.lang.String name)
protected void setPluginConfigurationProperty(PluginContext ctx, java.lang.String name, java.lang.Object value)
ctx
- the context of the target pluginname
- the name of the propertyvalue
- the value of the propertyprotected Future publishDeviceProxy(HobsonDeviceProxy proxy)
protected Future publishDeviceProxy(HobsonDeviceProxy proxy, java.util.Map<java.lang.String,java.lang.Object> config)
protected void deleteDeviceProxy(java.lang.String deviceId)
protected void addJobStatusMessage(java.lang.String msg, java.lang.Object props)
protected java.util.Collection<DeviceAdvertisement> getDeviceAdvertisementSnapshot(java.lang.String protocolId)
protocolId
- the protocol ID for the advertisements requestedpublic void publishDeviceAdvertisement(DeviceAdvertisement advertisement, boolean internal)
advertisement
- the advertisement to publishinternal
- indicates if this is an internal advertisement. A value of true will insure that the
advertisement is included in any discovery requests that external clients make for a
particular protocol.protected void executeTask(TaskContext context)
protected java.util.Collection<HobsonDeviceDescriptor> getPublishedDeviceDescriptions()
protected HobsonHub getLocalHub()
protected AccessManager getAccessManager()
protected DiscoManager getDiscoManager()
protected HubManager getHubManager()
protected TaskManager getTaskManager()
protected void setGlobalVariable(java.lang.String name, java.lang.Object value, long timestamp)
protected void setGlobalVariables(java.util.Map<java.lang.String,java.lang.Object> values, long timestamp)
Copyright © 2015 Whizzo Software LLC. All rights reserved.