de.bsvrz.sys.funclib.filelock
Class FileLock

java.lang.Object
  extended by de.bsvrz.sys.funclib.filelock.FileLock

public class FileLock
extends Object

Diese Klasse stellt einen Mechanismus zur Verfügung, mit dem geprüft werden kann, ob sich eine Datei im Zugriff einer anderen Applikation befindet, die ebenfalls diesen Mechansimus verwendet.

Damit oben beschriebene Aufgabe realisiert werden kann, wird im Konstruktor der Klasse eine Datei angegeben, die gegen unerlaubten Zugriff geschützt werden soll. Soll die übergebene Datei geschützt werden, wird eine entsprechende Methode aufgerufen. Dieser Methodenaufruf prüft, ob eine Datei mit der Endung ".lock" existiert, der restliche Pfad ist gleich der zu schützenden Datei.

Ist so eine Datei vorhanden, wird eine Exception geworfen, da sich zu schützende Datei bereits im Zugriff befindet.

Kann eine Datei angelegt werden, wird der Methodenaufruf keine weiteren Auswirkungen habe. Legt eine zweite Applikation eine Instanz dieser Klasse an und übergibt die gleiche Datei im Konstruktor und ruft die Methode zum sperren der Datei auf, wird automatisch eine Exception geworfen.

Die Klasse enthält ebenfalls eine Methode zum löschen der Datei mit der Endung ".lock". Wurde die Datei gelöscht, können andere Applikationen die Datei wieder sperren.

Author:
Kappich Systemberatung

Field Summary
private  File _lockFile
           
private static String _lockFileEnding
          Endung, die an die Datei gehängt wird, die anzeigt, dass sich die zu schützende Datei im Zugriff befindet.
private  File _protectedFile
          Datei, die über den lock-Mechanismus geschützt werden soll.
 
Constructor Summary
FileLock(File protectedFile)
          Legt ein Objekt an, die übergebene Datei wird nicht gegen den Zugriff gesichert.
 
Method Summary
 void lock()
          Zeigt an, dass die im Konstruktor übergebene Datei im Zugriff einer Applikation ist.
 void unlock()
          Gibt die Datei, die im Konstruktor übergeben wurde wieder frei.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_protectedFile

private final File _protectedFile
Datei, die über den lock-Mechanismus geschützt werden soll.


_lockFile

private final File _lockFile

_lockFileEnding

private static final String _lockFileEnding
Endung, die an die Datei gehängt wird, die anzeigt, dass sich die zu schützende Datei im Zugriff befindet.

See Also:
Constant Field Values
Constructor Detail

FileLock

public FileLock(File protectedFile)
Legt ein Objekt an, die übergebene Datei wird nicht gegen den Zugriff gesichert. Dies muss expliziet mit dem Aufruf von lock() geschehen.

Parameters:
protectedFile - Datei, die gesperrt werden soll.
Method Detail

lock

public void lock()
          throws IOException
Zeigt an, dass die im Konstruktor übergebene Datei im Zugriff einer Applikation ist. Jeder weitere Aufruf ohne vorher unlock() aufzurufen wird zu einer IllegalStateException führen.

Throws:
IllegalStateException - Die Datei wurde bereits gesperrt und befindet sich somit im Zugriff.
IOException

unlock

public void unlock()
Gibt die Datei, die im Konstruktor übergeben wurde wieder frei. Nach Aufruf dieser Methode kann die Methode lock() wieder aufgerufen werden.