Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## djbuch.kapitel_13
Class DJCacheDocument

    java.lang.Object
      |
      +--djbuch.kapitel_13.DJCacheDocument

public class DJCacheDocument
extends java.lang.Object

Ein DJCacheDocument ist ein Nachbau eines lotus.domino.Document und verhält sich weitestgehend wie dieses, insbesondere für die Methoden getItemValueString, getItemValueInteger und getItemValueDouble. Es basiert lediglich auf Java Mitteln und ist unabhängig von einer Domino Session. Hierdurch wird es möglich ein solches Document speicherresident (z.B. durch einen Singleton) vorzuhalten. Dies ist insbesondere für häufig benötigte Konfigurationsdokumente interessant oder für Dokumente, deren Erzeugung teuer ist. Durch die Nachahmung der Mimik des lotus.domino.Document kann in Anwendungen sehr leicht das lotus.domino.Document durch ein DJCacheDocument ausgetauscht werden. Allerdings werden keine Sicherheitsfunktionen von Domino implementiert. Insbesondere werden verschlüsselte Felder eines Domino Document unverschlüsselt gespeichert.

Author:
  Thomas ekert
See Also:
  `lotus.domino.Document`

Constructor Summary
`DJCacheDocument(Document doc)` Erstellt aus einem lotus.domino.Document ein DJCacheDocument

Method Summary
`void` | `appendItemValue(java.lang.String fieldName)` Erstellt ein Feld (feldname) falls es nicht existiert.
`void` | `appendItemValue(java.lang.String fieldName, double value)` Fügt dem Feld (fieldname) einen zusätzlichen Wert (value) hinzu.
`void` | `appendItemValue(java.lang.String fieldName, int value)` Fügt dem Feld (fieldname) einen zusätzlichen Wert (value) hinzu.
`void` | `appendItemValue(java.lang.String fieldName, java.lang.Object value)` Fügt dem Feld (fieldname) einen zusätzlichen Wert (value) hinzu.
`Document` | `createDocument(Database db)` Erzeugt ein neues lotus.domino.Document mit den Items aus dem DJCacheDocuemnt.
`java.util.Vector` | `getAllItemNames()` Gibt alle Item Namen des DJCacheDocument zurück.
`Document` | `getDocument(Session session)` Lädt das Ursprüngliche lotus.domino.Document aus der Datenbank
`java.util.Vector` | `getItemValue(java.lang.String fieldName)` Liefert den Inhalt eines Feldes (fieldname) das mehrere Werte enthält oder einen einzelnen Wert als Element eines neuen Vectors.
`java.util.Vector` | `getItemValueDateTimeArray(java.lang.String fieldName, Session session)` Lädt einen gespeicherten Vector und versucht die enthaltenen Werte in DateTime umzuwandeln.
`double` | `getItemValueDouble(java.lang.String fieldName)` Liefert den Inhalt eine Feldes (fieldname) als double.
`int` | `getItemValueInteger(java.lang.String fieldName)` Liefert den Inhalt eine Feldes (fieldname) als int.
`java.lang.String` | `getItemValueString(java.lang.String fieldName)` Liefert den Inhalt eine Feldes (fieldname) als String.
`Database` | `getParentDatabase(Session session)` Liefert die Datenbank in der sich das ursprüngliche lotus.domino.Document befand.
`java.lang.String` | `getParentDatabaseFileName()` Liefert den Dantenbanknamen der Datenbank in der sich das ursprüngliche lotus.domino.Document befand.
`java.lang.String` | `getParentDatabaseFilePath()` Liefert den Dantenbankdateipfad der Datenbank in der sich das ursprüngliche lotus.domino.Document befand.
`java.lang.String` | `getParentDocumentUNID()` Liefert die DocumentUNID eines optional vorhandenen Mutterdokuments desjenigen Document aus dem das DJCacheDocument ursprünglich erzeugt wurde.
`java.lang.String` | `getType(java.lang.String fieldName)` Liefert den Typ für ein Item.
`java.lang.String` | `getUniversalID()` Liefert die DocumentUNID des Document aus dem das DJCacheDocument ursprünglich erzeugt wurde.
`boolean` | `hasItem(java.lang.String fieldName)` Überprüft ob es das Feld (fieldname) gibt.
`void` | `recycle()` Die recycle Methode ist nur der Vollständigkeit (Mimik von lotus.domino.Document) halber vorhanden, muss aber keine Aufgaben erledigen.
`void` | `removeItem(java.lang.String fieldName)` Entfernt alle Items mit dem Namen fieldName
`void` | `replaceItemValue(java.lang.String fieldName, java.lang.Object value)` Ersetzt den Ihnalt des Feldes (fieldname) durch den Wert (value).
`java.lang.String` | `toString()` Gibt den Kompletten Inhalt des Dokuments als String zurück.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### DJCacheDocument

    public DJCacheDocument(Document doc)
                    throws NotesException

  Erstellt aus einem lotus.domino.Document ein DJCacheDocument

Parameters:
  `doc` -

Method Detail

### appendItemValue

    public void appendItemValue(java.lang.String fieldName,
                                java.lang.Object value)

  Fügt dem Feld (fieldname) einen zusätzlichen Wert (value) hinzu. Existiert das Feld nicht, wird es erstellt. Befinden sich in einem Vector DateTime Objekte, werden diese als java.util.Date abgespeichert. Intern werden alle Elemente als Vector gespeichert, um die Mimik von lotus.domino.Document nachzuahmen. Besondere Eigenschaften, wie isAuthors oder isReaders werden zur Zeit nicht unterstützt.

  Parameters:
    `value` -

### appendItemValue

    public void appendItemValue(java.lang.String fieldName)

  Erstellt ein Feld (feldname) falls es nicht existiert.

  Parameters:
    `fieldName` -

### appendItemValue

    public void appendItemValue(java.lang.String fieldName,
                                int value)

  Fügt dem Feld (fieldname) einen zusätzlichen Wert (value) hinzu. Existiert das Feld nicht, wird es erstellt. ACHTUNG Notes Speichert intern Integer Variablen als Double.

  Parameters:
    `fieldName` -
    `value` -

### appendItemValue

    public void appendItemValue(java.lang.String fieldName,
                                double value)

  Fügt dem Feld (fieldname) einen zusätzlichen Wert (value) hinzu. Existiert das Feld nicht, wird es erstellt.

  Parameters:
    `fieldName` -
    `value` -

### getItemValue

    public java.util.Vector getItemValue(java.lang.String fieldName)

  Liefert den Inhalt eines Feldes (fieldname) das mehrere Werte enthält oder einen einzelnen Wert als Element eines neuen Vectors. Intern werden Werte nur als Vector gespeichert.

  Returns:
  See Also:
    `appendItemValue`

### getItemValueString

    public java.lang.String getItemValueString(java.lang.String fieldName)

  Liefert den Inhalt eine Feldes (fieldname) als String.

  Returns:

### getItemValueInteger

    public int getItemValueInteger(java.lang.String fieldName)

  Liefert den Inhalt eine Feldes (fieldname) als int. Imitiert dabei das Round Verhalten von Domino. (round (-1.5) = -2))

  Returns:

### getItemValueDouble

    public double getItemValueDouble(java.lang.String fieldName)

  Liefert den Inhalt eine Feldes (fieldname) als double.

  Returns:

### getItemValueDateTimeArray

    public java.util.Vector getItemValueDateTimeArray(java.lang.String fieldName,
                                                      Session session)
                                               throws NotesException

  Lädt einen gespeicherten Vector und versucht die enthaltenen Werte in DateTime umzuwandeln. Hierfür wird eine Session benötigt, um ein DateTime Objekt zu erzeugen, daher der zusätzliche Parameter. Alternativ kann getItemValue verwendet werden, dann wird ein Vector mit Date Elementen zurückgegeben. Beim Speichern von DateTime Items wird immer sowohl Datum als auch Zeit gespeichert. Reine Datums- (oder Zeit-) Items erhalten daher, anders als in lotus.domino.Document immer beide Komponenten (wg. der Umwandlung zwischen DateTime und Date).

  Parameters:
    `fieldName` -
    `session` -
  Returns:
  Throws:
    `NotesException` - - falls das Item nicht vom DateTime Typ ist

### getType

    public java.lang.String getType(java.lang.String fieldName)

  Liefert den Typ für ein Item. Zur Zeit nur für DateTime Items implementiert. Ansonsten wird null zurückgegeben.

  Parameters:
    `fieldName` -
  Returns:

### getAllItemNames

    public java.util.Vector getAllItemNames()

  Gibt alle Item Namen des DJCacheDocument zurück. Exisitieren doppelte Items mit gleichem Namen, wird ein solcher Name lediglich einmal zurückgegeben.

  Returns:

### getParentDocumentUNID

    public java.lang.String getParentDocumentUNID()

  Liefert die DocumentUNID eines optional vorhandenen Mutterdokuments desjenigen Document aus dem das DJCacheDocument ursprünglich erzeugt wurde.

  Returns:

### getUniversalID

    public java.lang.String getUniversalID()

  Liefert die DocumentUNID des Document aus dem das DJCacheDocument ursprünglich erzeugt wurde.

  Returns:

### replaceItemValue

    public void replaceItemValue(java.lang.String fieldName,
                                 java.lang.Object value)

  Ersetzt den Ihnalt des Feldes (fieldname) durch den Wert (value). Existiert das Feld nicht, wird es erstellt.

  Parameters:
    `value` -

### removeItem

    public void removeItem(java.lang.String fieldName)

  Entfernt alle Items mit dem Namen fieldName

  Parameters:
    `fieldName` -

### hasItem

    public boolean hasItem(java.lang.String fieldName)

  Überprüft ob es das Feld (fieldname) gibt.

  Returns:

### recycle

    public void recycle()

  Die recycle Methode ist nur der Vollständigkeit (Mimik von lotus.domino.Document) halber vorhanden, muss aber keine Aufgaben erledigen.

### toString

    public java.lang.String toString()

  Gibt den Kompletten Inhalt des Dokuments als String zurück. Einzelne Felder werden durch kommatas getrennt.

  Overrides:
    `toString` in class `java.lang.Object`

### getParentDatabaseFileName

    public java.lang.String getParentDatabaseFileName()

  Liefert den Dantenbanknamen der Datenbank in der sich das ursprüngliche lotus.domino.Document befand.

  Returns:

### getParentDatabaseFilePath

    public java.lang.String getParentDatabaseFilePath()

  Liefert den Dantenbankdateipfad der Datenbank in der sich das ursprüngliche lotus.domino.Document befand.

  Returns:

### getParentDatabase

    public Database getParentDatabase(Session session)
                               throws NotesException

  Liefert die Datenbank in der sich das ursprüngliche lotus.domino.Document befand.

  Returns:
    `NotesException`

### getDocument

    public Document getDocument(Session session)
                         throws NotesException

  Lädt das Ursprüngliche lotus.domino.Document aus der Datenbank

  Parameters:
    `session` -
  Returns:
  Throws:
    `NotesException`

### createDocument

    public Document createDocument(Database db)
                            throws NotesException

  Erzeugt ein neues lotus.domino.Document mit den Items aus dem DJCacheDocuemnt. Das Document wird als Speicher Instanz zurückgegeben, ohne gespeichert zu sein. Besondere Eigenschaften, wie isAuthors oder isReaders in den einzelnen Items gehen verloren, da Sie zur Zeit nicht von appendItemValue unterstützt werden. Unterstützt werden die ItemTypen Text, Number, DateTime und Vectoren davon. Ursprüngliche Autoren- oder Leserfelder werden als normale Textfelder zurückgegeben.

  Parameters:
    `db` -
  Returns:
  Throws:
    `NotesException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD