BEA Systems, Inc.

com.connecterra.ale.reader
Class AbstractDispatchingPollingPhysicalDevice

java.lang.Object
  extended by com.connecterra.util.event.AbstractEventProcessor
      extended by com.connecterra.ale.reader.AbstractPhysicalDevice
          extended by com.connecterra.ale.reader.AbstractPollingPhysicalDevice
              extended by com.connecterra.ale.reader.AbstractDispatchingPollingPhysicalDevice
All Implemented Interfaces:
com.bea.rfid.edge.api.telemetry.Telemetered, ChannelManager.Proxy, PhysicalDevice, Controllable, EventProcessor, com.connecterra.util.plugin.Plugin
Direct Known Subclasses:
AbstractPrinterPhysicalReader

public abstract class AbstractDispatchingPollingPhysicalDevice
extends AbstractPollingPhysicalDevice

Adds to AbstractPhysicalDevice support for sequenced polling for inventorying and automatic calls to AbstractPhysicalDevice.TagProcessor methods for each method returned from the inventory method. This is a good starting point for a driver that requires periodically querying a device.

Implementations which extend this class must implement or override the AbstractDispatchingPollingPhysicalDevice.inventoryTagsInField(java.util.Set) and AbstractPhysicalDevice.sendStatusRequest() methods. The implementation must also provide a public static PluginMeta getPluginMeta() method.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.connecterra.ale.reader.AbstractPhysicalDevice
AbstractPhysicalDevice.AFIReadingTagProcessor, AbstractPhysicalDevice.BankReadTagProcessor, AbstractPhysicalDevice.BankTagProcessor, AbstractPhysicalDevice.BankWriteTagProcessor, AbstractPhysicalDevice.EPCglobalClass1Gen2TagProcessor, AbstractPhysicalDevice.EPCglobalTagProcessor, AbstractPhysicalDevice.EPCglobalTagReadProcessor, AbstractPhysicalDevice.EPCglobalTagWriteProcessor, AbstractPhysicalDevice.EPCTagData, AbstractPhysicalDevice.Requests, AbstractPhysicalDevice.TagData, AbstractPhysicalDevice.TagProcessor, AbstractPhysicalDevice.TagResultException
 
Nested classes/interfaces inherited from class com.connecterra.util.event.AbstractEventProcessor
AbstractEventProcessor.PeriodicEventHandle
 
Field Summary
 
Fields inherited from class com.connecterra.ale.reader.AbstractPhysicalDevice
m_channelManager
 
Constructor Summary
AbstractDispatchingPollingPhysicalDevice()
           
 
Method Summary
protected abstract  Set inventoryTagsInField(Set deviceUnits)
          Inventory all the tags for the device units specified.
 
Methods inherited from class com.connecterra.ale.reader.AbstractPhysicalDevice
addAFIParametersToPluginMeta, addDeviceChannel, addDeviceUnit, addForceAFIParameterToPluginMeta, addReadAFIParameterToPluginMeta, addReaderThread, addTagData, addToPluginMeta, getChannelState, getDeviceUnit, getForcedAFIValue, getLogger, getLogicalReaderSet, getPhysicalDeviceName, initialize, initializeSession, initializeSession, isForceAFI, isReadAFI, processOpSpecs, removeReaderThread, report, sendStatusRequest, setDeviceAttributes, shutdown, terminate, toString, updateRequests, waitForShutdown, waitForTermination
 
Methods inherited from class com.connecterra.util.event.AbstractEventProcessor
doASAP, doASAPOrBlock, doASAPOrDrop, doASAPOrThrow, doLater, doPeriodic, getEventReceiver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.connecterra.util.plugin.Plugin
initialize
 
Methods inherited from interface com.bea.rfid.edge.api.telemetry.Telemetered
getDeviceAttributes, getDeviceType, getTelemetryAssociatedIdentity, telemeter
 
Methods inherited from interface com.connecterra.ale.reader.ChannelManager.Proxy
initialize, listenerExecute
 
Methods inherited from interface com.connecterra.util.event.EventProcessor
handleEvent
 

Constructor Detail

AbstractDispatchingPollingPhysicalDevice

public AbstractDispatchingPollingPhysicalDevice()
Method Detail

inventoryTagsInField

protected abstract Set inventoryTagsInField(Set deviceUnits)
                                     throws IOException,
                                            AbstractPhysicalDevice.TagResultException
Inventory all the tags for the device units specified. The returned Set of TagData objects must include one element for each tag seen by each device unit. If a tag is seen by multiple device units, it must be in the returned Set once for each device unit.

In order to perform all the necessary work on the tags returned, the framework will take each AbstractPhysicalDevice.TagData object returned here, and invoke its AbstractPhysicalDevice.TagProcessor methods one at a time for each DeviceUnitRequest which applies to this inventory. It will then report the results of this inventory round as a complete cycle.

Parameters:
deviceUnits - Set of PollingDeviceUnit objects which describe where to inventory
Returns:
the Set of TagData objects which were seen by this inventory round.
Throws:
IOException
AbstractPhysicalDevice.TagResultException

Documentation is available at
${DOCSWEBROOT}
Copyright 2007 BEA Systems Inc.