clickDetector
Class ClickGroupDataBlock<t extends GroupDetection>

java.lang.Object
  extended by PamguardMVC.PamObservable
      extended by PamguardMVC.PamDataBlock<Tunit>
          extended by PamguardMVC.AcousticDataBlock<t>
              extended by clickDetector.ClickGroupDataBlock<t>
All Implemented Interfaces:
PanelOverlayDraw
Direct Known Subclasses:
ClickTrainDataBlock

public class ClickGroupDataBlock<t extends GroupDetection>
extends AcousticDataBlock<t>

Click Train data block deletes old data in a slightly different way to PamDataBlock. Where PamDataBlock starts at the beginning of the list and deletes items until one of them starts after the set time at which point it stops, ClickTrainDataBlock examins all units and deletes all of those which end before the set time. This is necessary since some click train data units last for hours, whereas others can be deleted after a couple of seconds.

Author:
Doug Gillespie

Field Summary
 
Fields inherited from class PamguardMVC.PamDataBlock
dataName, ITERATOR_END, MATCH_AFTER, MATCH_BEFORE, MATCH_EXACT, MIX_DONOTHING, MIX_INTODATABASE, MIX_OUTOFDATABASE, naturalLifetime, NOTIFY_NEW_DATA, NOTIFY_UPDATE_DATA, OFFLINE_DATA_CANCEL, OFFLINE_DATA_INTERRUPT, OFFLINE_DATA_WAIT, orderLock, pamDataUnits, parentProcess, POSITION_AFTER, POSITION_BEFORE, REFERENCE_ABSOLUTE, REFERENCE_CURRENT, REQUEST_DATA_LOADED, REQUEST_DATA_PARTIAL_LOAD, REQUEST_EXCEPTION, REQUEST_INTERRUPTED, REQUEST_NO_DATA, REQUEST_SAME_REQUEST, unitsAdded, unitsRemoved, unitsUpdated
 
Fields inherited from class PamguardMVC.PamObservable
masterClockSample, objectChanged, overlayDraw, pamObservers, pamProfiler
 
Constructor Summary
ClickGroupDataBlock(java.lang.Class pduClass, java.lang.String dataName, PamProcess parentProcess, int channelMap)
           
 
Method Summary
 boolean canDraw(GeneralProjector projectorInfo)
           
protected  int removeOldUnitsT(long currentTimeMS)
          Removes olderPamDataUnits from memory, starting at the first unit and continuing until if finds one with data coming earlier than the given time in milliseconds.
 
Methods inherited from class PamguardMVC.AcousticDataBlock
findParentSource, getChannelListManager, getParentSourceData, notifyModelChanged, prepareAmplitudeCalculations, prepareChannelLists
 
Methods inherited from class PamguardMVC.PamDataBlock
addLocalisationContents, addObserver, addObserver, addOfflineDataMap, addPamData, autoSetDataBlockMixMode, clearAll, clearDeletedList, createAnnotations, createAnnotations, dumpBlockContents, findAnnotation, findAnnotation, findByDatabaseIndex, findDataUnit, findDataUnit, getAbsoluteDataUnit, getAnnotations, getBinaryDataSource, getCanLog, getChannelMap, getClosestUnitMillis, getCurrentViewDataEnd, getCurrentViewDataStart, getDataGain, getDataName, getDataUnit, getFirstUnit, getFirstUnitAfter, getLastUnit, getListIterator, getListIterator, getListIteratorFromEnd, getListIteratorFromStart, getLocalisationContents, getLogging, getLoggingName, getLongDataName, getMixedDirection, getNaturalLifetime, getNaturalLifetimeMillis, getNextDataStart, getNumOfflineDataMaps, getOfflineData, getOfflineData, getOfflineDataMap, getOfflineDataMap, getOrderStatus, getParentProcess, getPreceedingUnit, getPreceedingUnit, getPreceedingUnit, getPreceedingUnit, getPrevDataEnd, getPrimaryDataMap, getRawSourceDataBlock, getRecycledUnit, getRecyclingStoreLength, getRemovedItems, getSampleRate, getSaveRequirements, getShouldLog, getSourceDataBlock, getSourceProcess, getUnitClass, getUnitIndex, getUnitsCount, getUnitsCountFromTime, isLinkGpsData, isRecycling, loadViewerData, masterClockUpdate, noteNewSettings, orderOfflineData, orderOfflineData, remove, remove, removeOldUnitsS, saveViewerData, setBinaryDataSource, setChannelMap, setDataName, setLinkGpsData, setLocalisationContents, SetLogging, setMixedDirection, setNaturalLifetime, setNaturalLifetimeMillis, setRecycling, setRecyclingStoreLength, setSampleRate, setShouldLog, shouldNotify, toString, updatePamData
 
Methods inherited from class PamguardMVC.PamObservable
clearchanged, countObservers, createKeyItem, deleteObserver, deleteObservers, drawDataUnit, findThreadedObserver, getCPUPercent, getCPUPercent, getHoverText, getLongestObserver, getPamObservers, getRequiredHistory, notifyObservers, notifyObservers, setChanged, setOverlayDraw, waitForThreadedObservers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ClickGroupDataBlock

public ClickGroupDataBlock(java.lang.Class pduClass,
                           java.lang.String dataName,
                           PamProcess parentProcess,
                           int channelMap)
Method Detail

removeOldUnitsT

protected int removeOldUnitsT(long currentTimeMS)
Description copied from class: PamDataBlock
Removes olderPamDataUnits from memory, starting at the first unit and continuing until if finds one with data coming earlier than the given time in milliseconds.

If the data are acoustic, it tries to find the data source and looks to see how much data has been placed in the source data unit and does the calculation in samples.

Overrides:
removeOldUnitsT in class PamDataBlock<t extends GroupDetection>
Parameters:
currentTimeMS - Time in milliseconds of the first data which must be kept
Returns:
the number of units removed

canDraw

public boolean canDraw(GeneralProjector projectorInfo)
Specified by:
canDraw in interface PanelOverlayDraw
Overrides:
canDraw in class PamObservable
Returns:
Returns whether or not the object can be drawn using the given projector. The implementation of CanDraw should examine the parameter types in GeneralProjector and check that it will know how to prvide those parameters before returning true, or false otherwise.