Elexis API documentation
Version 2.1.6 as of December 11 2011

ch.rgw.tools
Class VersionedResource

java.lang.Object
  extended by ch.rgw.tools.VersionedResource

public class VersionedResource
extends java.lang.Object

Eine VersionedResource ist ein Datenobjekt, das einen String-Inhalt so speichert, dass bei einer neuen Speicherung der alte Inhalt nicht überschrieben, sondern mit Zeitstempel aufbewahrt wird. Zu einem späteren Zeitpunkt kann jede frühere Version wiederhergestellt werden. Die innere Implementation des Versionsalgorithmus ist transparent. Es ist sowohl eine simpke speicherung aller Versionen, als auch eine Speicherung eines Diff möglich. Abgeleitete Klassen könnten auch die alten Versionen extern ablegen etc. Zur Rückwärtskompatibiltät kann VersionedResource auch mit CompEx-gepackten Strings umgehen: Diese werden beim ersten Einlesen in VersionedResourcen umgewandelt.

Author:
Gerry

Nested Class Summary
static class VersionedResource.ResourceItem
           
 
Method Summary
 java.lang.String getHead()
          Die neueste Version des Dateninhalts auslesen
 int getHeadVersion()
          Versionsnummer der neuesten Version auslesen
 VersionedResource.ResourceItem getVersion(int v)
          Eine bestimmte Version des Dateninhalts auslesen
static VersionedResource load(byte[] src)
          Die Factory und einzige Möglichkeit, eine VersionedResource zu erstellen
 void modify(java.lang.String newValue, java.lang.String remark)
          Modify the Head without creating a new Version
 void purge()
          Alle Einträge ausser dem Neuesten entfernen
 byte[] serialize()
          Eine kompaktes Speicherbares Abbild dieser VersionedResource erstellen.
 boolean update(java.lang.String newValue, java.lang.String remark)
          Eine neue Version des Dateninhalts einsetzen.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

load

public static VersionedResource load(byte[] src)
Die Factory und einzige Möglichkeit, eine VersionedResource zu erstellen

Parameters:
src - mit serialize() erstellte frühere Repräsentation dieses Objekts, oder null, um eine neue VersionedResource zu erstellen.
Returns:
die VersionedResource.

update

public boolean update(java.lang.String newValue,
                      java.lang.String remark)
Eine neue Version des Dateninhalts einsetzen. Mehrere nacheinanderfolgende Upates auf diesebe VersionedResource

Parameters:
newValue - der neue String
remark - Ein kurzer Beschreibungstext für diese Version
Returns:
false, wenn kein update erfolgte (z.B. weil die neue Version identisch mit der vorherigen war)

modify

public void modify(java.lang.String newValue,
                   java.lang.String remark)
Modify the Head without creating a new Version

Parameters:
newValue -
remark -

getHead

public java.lang.String getHead()
Die neueste Version des Dateninhalts auslesen


getHeadVersion

public int getHeadVersion()
Versionsnummer der neuesten Version auslesen


getVersion

public VersionedResource.ResourceItem getVersion(int v)
Eine bestimmte Version des Dateninhalts auslesen

Parameters:
v - die gewünschte Versionsnummer
Returns:
der Dateninhalt in der gewünschten Version oder Null, wenn die gewünschte Version nicht existiert. Der zurückgelieferte Text enthält einen einzeiligen Header, der die Versionsmummer, Zeit/Datum der Erstellung und den Anmerkungstext enthält.

serialize

public byte[] serialize()
Eine kompaktes Speicherbares Abbild dieser VersionedResource erstellen. Dieses enthält alle Versionen in komprimierter Form.


purge

public void purge()
Alle Einträge ausser dem Neuesten entfernen


Elexis API documentation
Version 2.1.6 as of December 11 2011

Copyright 2005-2011 by Gerry Weirich, Elexis