de.bsvrz.ars.ars.mgmt
Class ArchiveLongTermTaskStatePublisher

java.lang.Object
  extended by de.bsvrz.ars.ars.mgmt.ArchiveLongTermTaskStatePublisher
All Implemented Interfaces:
LongTermTaskStatePublisher

public class ArchiveLongTermTaskStatePublisher
extends Object
implements LongTermTaskStatePublisher

Verwaltet und dokumentiert die Zustände von Tasks und deren Fortschritt. Bei Zustandswechseln einzelner Tasks und in zyklischen Abständen werden die Zustände aller Tasks ausgegeben und über den Datenverteiler publiziert. Der Fortschritt von Aktionen einzelner Tasks wird zyklisch ausgegeben.

Author:
Kappich Systemberatung

Nested Class Summary
private  class ArchiveLongTermTaskStatePublisher.ArchiveLongTermTask
           
private  class ArchiveLongTermTaskStatePublisher.ClientSender
           
 
Nested classes/interfaces inherited from interface de.bsvrz.ars.ars.mgmt.LongTermTaskStatePublisher
LongTermTaskStatePublisher.Task, LongTermTaskStatePublisher.TaskState
 
Field Summary
private  ArchiveManager _archMgr
           
private  AttributeGroup _atg
           
private  ConfigurationAuthority _authority
           
private  DataDescription _dataDescription
           
private  ClientDavInterface _davConnection
           
private  Debug _debug
           
private  boolean _enableDataSource
           
private  String _majorChangeHeaderText
           
private  String _minorChangeHeaderText
           
private  long _nextAllTaskUpdateTime
           
private  List<ArchiveLongTermTaskStatePublisher.ArchiveLongTermTask> _tasks
           
private static long ALL_TASK_UPDATE_INTERVAL
          Intervalldauer zur Ausgabe und Publikation der Zustände aller Tasks
private static String NEWLINE
           
private static long TASK_UPDATE_INTERVAL
          Intervalldauer zur Ausgabe des Zustands einer Task
 
Constructor Summary
ArchiveLongTermTaskStatePublisher(ArchiveManager archMgr, String minorChangeHeaderText, String majorChangeHeaderText)
           
 
Method Summary
private  Data createDataObject()
           
private  void insertData(ArchiveLongTermTaskStatePublisher.ArchiveLongTermTask task, Data item)
           
private  void notifyMinorChanges(long now)
           
private  void publishMajorChanges(long now)
           
 LongTermTaskStatePublisher.Task registerTask(String taskName)
          Nimmt eine neue Task in die Verwaltung der Tasks auf.
 void setDavConnection(ClientDavInterface davConnection)
          Übergibt die Verbindung zum Datenverteiler.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALL_TASK_UPDATE_INTERVAL

private static final long ALL_TASK_UPDATE_INTERVAL
Intervalldauer zur Ausgabe und Publikation der Zustände aller Tasks

See Also:
Constant Field Values

TASK_UPDATE_INTERVAL

private static final long TASK_UPDATE_INTERVAL
Intervalldauer zur Ausgabe des Zustands einer Task

See Also:
Constant Field Values

_tasks

private List<ArchiveLongTermTaskStatePublisher.ArchiveLongTermTask> _tasks

_davConnection

private ClientDavInterface _davConnection

_nextAllTaskUpdateTime

private long _nextAllTaskUpdateTime

_enableDataSource

private boolean _enableDataSource

_debug

private Debug _debug

NEWLINE

private static final String NEWLINE

_archMgr

private ArchiveManager _archMgr

_minorChangeHeaderText

private final String _minorChangeHeaderText

_majorChangeHeaderText

private final String _majorChangeHeaderText

_atg

private AttributeGroup _atg

_authority

private ConfigurationAuthority _authority

_dataDescription

private DataDescription _dataDescription
Constructor Detail

ArchiveLongTermTaskStatePublisher

public ArchiveLongTermTaskStatePublisher(ArchiveManager archMgr,
                                         String minorChangeHeaderText,
                                         String majorChangeHeaderText)
Method Detail

setDavConnection

public void setDavConnection(ClientDavInterface davConnection)
Description copied from interface: LongTermTaskStatePublisher
Übergibt die Verbindung zum Datenverteiler. Nach Aufruf dieser Methode kann die Task-Verwaltung die Zustände der einzelnen Task über den Datenverteiler publizieren. Der Aufruf dieser Methode ist optional.

Specified by:
setDavConnection in interface LongTermTaskStatePublisher

createDataObject

private Data createDataObject()

insertData

private void insertData(ArchiveLongTermTaskStatePublisher.ArchiveLongTermTask task,
                        Data item)

registerTask

public LongTermTaskStatePublisher.Task registerTask(String taskName)
Description copied from interface: LongTermTaskStatePublisher
Nimmt eine neue Task in die Verwaltung der Tasks auf. Diese Methode sollte von jeder Task einmal aufgerufen werden. Über das zurückgelieferte Task-Objekt kann die Task ihren Zustand und ihren Fortschritt mit entsprechenden Methoden bekannt geben.

Specified by:
registerTask in interface LongTermTaskStatePublisher
Parameters:
taskName - Name der Task
Returns:
Task-Objekt über das die Task ihren Zustand und ihren Fortschritt mit entsprechenden Methoden bekannt geben kann.

publishMajorChanges

private void publishMajorChanges(long now)

notifyMinorChanges

private void notifyMinorChanges(long now)