cz.zcu.validationserver.domain
Class GenericValidationThread

java.lang.Object
  extended by java.lang.Thread
      extended by cz.zcu.validationserver.domain.GenericValidationThread
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
ValidationMainThread

public abstract class GenericValidationThread
extends java.lang.Thread

Obecny predchudce vlaken, ktera se pouzivaji pro validaci. Umi se spustit a ohlidat dobu spusteni, napriklad. Dale obsahuje staticke metody, ktere umoznuji zjistit validacni domenu, info a dalsi veci aktualniho vlakna. User: Lukas Date: 18.4.2007 Time: 11:55:40


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private  java.lang.Throwable exitReason
          Pokud bylo vlakno ukonceno kvuli nejake (libovolne) chybe, je pak po skonceni vlakna ulozena zde
private static Logger logger
           
protected  FullValidationResult result
          Vysledek validace
private  java.util.LinkedList<TimeLimitedStackItem> timeLimitedStack
           
private  long waitTimer
          Jak dlouho se uz ceka na ukonceni vlakna
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
GenericValidationThread(FullValidationResult result)
           
 
Method Summary
static ValidationDomain getActualDomain()
          Vrati aktualni validacni domenu - vezme aktualni vlakno a pokud se jedna o GenericValidationThread, vrati domenu.
static FullValidationResult getActualResult()
          Vrati aktualni ValidationResult - vezme aktualni vlakno a pokud se jedna o GenericValidationThread, vrati result.
private  TimeLimitedStackItem getActualStackItem()
          Vrati do jakeho casoveho okamziku se nyni ceka.
 java.lang.Throwable getExitReason()
           
private  long getNowWaitingToTime()
          Vrati do jakeho casoveho okamziku se nyni ceka.
 void popTimeLimitedBlock()
           
 void pushTimeLimitedBlock(long maxMiliseconds, java.lang.String exceededKey)
          Pokud se vstupuje do time-limited bloku procesu, tak se vola tohle (na jiz bezicim vlakne).
 void run()
          Tahle metoda je zdedena a odchytava ValidationError a predava ho volajicimu (respektive uklada to do resultu a konci - volajici si musi zkontrolovat, zda nedoslo k chybe).
 boolean runForLimitedTime(long maxMiliseconds, java.lang.String timeoutKey)
          Metoda spusti toto vlakno (je tedy volana z VNE vlakna) a necha ho bezet pouze zadany pocet milisekund.
protected abstract  void runValidation()
           
protected  void setExitReason(java.lang.Throwable exitReason)
           
 
Methods inherited from class java.lang.Thread
activeCount, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, checkAccess, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

private static final Logger logger

exitReason

private java.lang.Throwable exitReason
Pokud bylo vlakno ukonceno kvuli nejake (libovolne) chybe, je pak po skonceni vlakna ulozena zde


result

protected FullValidationResult result
Vysledek validace


waitTimer

private long waitTimer
Jak dlouho se uz ceka na ukonceni vlakna


timeLimitedStack

private final java.util.LinkedList<TimeLimitedStackItem> timeLimitedStack
Constructor Detail

GenericValidationThread

public GenericValidationThread(FullValidationResult result)
Method Detail

getExitReason

public java.lang.Throwable getExitReason()

setExitReason

protected void setExitReason(java.lang.Throwable exitReason)

run

public final void run()
Tahle metoda je zdedena a odchytava ValidationError a predava ho volajicimu (respektive uklada to do resultu a konci - volajici si musi zkontrolovat, zda nedoslo k chybe). Zdedene tridy at si zdedi metodu 'runValidation()'

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

runValidation

protected abstract void runValidation()

pushTimeLimitedBlock

public void pushTimeLimitedBlock(long maxMiliseconds,
                                 java.lang.String exceededKey)
Pokud se vstupuje do time-limited bloku procesu, tak se vola tohle (na jiz bezicim vlakne). zajisti to to, ze cekani na ukonceni vlakna (ktere je v teto chvili blokovano v 'runForLimitedTime') bude trvat jinou dobu.

Po opusteni bloku je treba volat 'popTimeLimitedBlock'.

Parameters:
maxMiliseconds -
exceededKey -

popTimeLimitedBlock

public void popTimeLimitedBlock()

getNowWaitingToTime

private long getNowWaitingToTime()
Vrati do jakeho casoveho okamziku se nyni ceka. Synchronizovano.

Returns:

getActualStackItem

private TimeLimitedStackItem getActualStackItem()
Vrati do jakeho casoveho okamziku se nyni ceka. Synchronizovano.

Returns:

runForLimitedTime

public boolean runForLimitedTime(long maxMiliseconds,
                                 java.lang.String timeoutKey)
                          throws java.lang.Throwable
Metoda spusti toto vlakno (je tedy volana z VNE vlakna) a necha ho bezet pouze zadany pocet milisekund. Pokud vlakno do te doby skonci, je vse ok a vraci TRUE. Pokud neskonci, je nasilne ukonceno, vypise se chyba do 'validationResultu' a vraci FALSE.

Parameters:
maxMiliseconds -
Returns:
Throws:
java.lang.Throwable

getActualDomain

public static ValidationDomain getActualDomain()
Vrati aktualni validacni domenu - vezme aktualni vlakno a pokud se jedna o GenericValidationThread, vrati domenu.

Returns:

getActualResult

public static FullValidationResult getActualResult()
Vrati aktualni ValidationResult - vezme aktualni vlakno a pokud se jedna o GenericValidationThread, vrati result.

Returns:


Copyright © 2007 University of West Bohemia, KIV, author Lukas Valenta (lvalenta at civ.zcu.cz). All Rights Reserved. Build date 20110415.