Package de.bsvrz.dav.daf.main
Interface Data
-
- All Superinterfaces:
java.lang.Iterable<Data>
- All Known Implementing Classes:
AbstractData
,AbstractData.ArrayData
,AbstractData.ListData
,AbstractData.PlainData
,AbstractData.StructuredData
,AttributeBaseValueDataFactory.AttributeGroupAdapter
,ByteArrayArrayData
,ByteArrayData
,ByteArrayListArrayItemData
,ByteArrayListData
,ByteArrayPrimitiveArrayItemData
,ByteArrayPrimitiveData
,ByteArrayStructuredData
public interface Data extends java.lang.Iterable<Data>
Schnittstelle zum generischen Zugriff auf Attributwerte in beliebig strukturierten Attributgruppen. Zum Erzeugen eines neuen Datensatzes kann die MethodeClientDavInterface.createData(de.bsvrz.dav.daf.main.config.AttributeGroup)
benutzt werden. Nach dem Empfang von Daten kann mit der MethodeResultData.getData()
der im Ergebnis enthaltene Datensatz abgefragt werden.Ein Data-Objekt besitzt eine JSON-ähnliche Baumstruktur aus Arrays, Attributlisten (Schlüssel-Wert-Paaren, entspricht etwa Java-Maps) und einfachen Werten (Attributen).
Im Gegensatz zu JSON besitzt ein Data-Objekt jedoch eine durch die Attributgruppen, Attributlisten und Attribute im Datenmodell fest vorgegebene Struktur und feste Wertebereiche für Attribute (durch Attributtypen definiert).
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
Data.Array
Interface-Klasse für die Array-Ansicht eines Datums.static class
Data.FormatException
Deprecated.Diese Exception wird nicht verwendet und in einem zukünftigen Release entfernt.static interface
Data.NumberArray
Interface-Klasse für die Skalierte- und Unskalierte-Array-Ansicht eines Datums.static interface
Data.NumberValue
Interface-Klasse für die Skalierte- und Unskalierte-Ansicht eines Datums.static interface
Data.ReferenceArray
Interface-Klasse für die Referenz-Array-Ansicht eines Datums.static interface
Data.ReferenceValue
Interface-Klasse für die Referenz-Ansicht eines Datums.static interface
Data.TextArray
Interface-Klasse für die Text-Array-Ansicht eines Datums.static interface
Data.TextValue
Interface-Klasse für die Text-Ansicht eines Datums.static interface
Data.TimeArray
Interface-Klasse für die Zeit-Array-Ansicht eines Datums.static interface
Data.TimeValue
Interface-Klasse für die Zeit-Ansicht eines Datums.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description Data.Array
asArray()
Liefert eine Array-Ansicht auf dieses Array zurück.Data.ReferenceArray
asReferenceArray()
Liefert eine Referenz-Array-Ansicht auf dieses Array zurück.Data.ReferenceValue
asReferenceValue()
Liefert eine Referenz-Ansicht auf dieses einfache Datum zurück.Data.NumberArray
asScaledArray()
Liefert eine Skalierte-Array-Ansicht auf dieses Array zurück.Data.NumberValue
asScaledValue()
Liefert eine Skalierte-Ansicht auf dieses einfache Datum zurück.Data.TextArray
asTextArray()
Liefert eine Text-Array-Ansicht auf dieses Array zurück.Data.TextValue
asTextValue()
Liefert eine Text-Ansicht auf dieses einfache Datum zurück.Data.TimeArray
asTimeArray()
Liefert eine Time-Array-Ansicht auf dieses Array zurück.Data.TimeValue
asTimeValue()
Liefert eine Zeit-Ansicht auf dieses einfache Datum zurück.Data.NumberArray
asUnscaledArray()
Liefert eine Unskalierte-Array-Ansicht auf dieses Array zurück.Data.NumberValue
asUnscaledValue()
Liefert eine Unskalierte-Ansicht auf dieses einfache Datum zurück.default boolean
containsItem(java.lang.String itemName)
Ermittelt, ob es ein Sub-Datum mit dem angegebenen Namen gibt.Data
createModifiableCopy()
Liefert eine modifizierbare Kopie eines Datensatzes zurück.Data
createUnmodifiableCopy()
Liefert eine nicht modifizierbare Kopie eines Datensatzes zurück.Data.Array
getArray(java.lang.String itemName)
Liefert eine Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.default AttributeGroup
getAttributeGroup()
Liefert die Attributgruppe eines Datums zurück.AttributeType
getAttributeType()
Liefert den Attribut-Typ eines Datums zurück.Data
getItem(java.lang.String itemName)
Bestimmt das Sub-Datum dieser Liste mit dem angegebenen Namen.java.lang.String
getName()
Liefert den Namen eines Datums zurück.Data.ReferenceArray
getReferenceArray(java.lang.String itemName)
Liefert eine Referenz-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.ReferenceValue
getReferenceValue(java.lang.String itemName)
Liefert eine Referenz-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.NumberArray
getScaledArray(java.lang.String itemName)
Liefert eine Skalierte-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.NumberValue
getScaledValue(java.lang.String itemName)
Liefert eine Skalierte-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.TextArray
getTextArray(java.lang.String itemName)
Liefert eine Text-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.TextValue
getTextValue(java.lang.String itemName)
Liefert eine Text-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.TimeArray
getTimeArray(java.lang.String itemName)
Liefert eine Time-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.TimeValue
getTimeValue(java.lang.String itemName)
Liefert eine Zeit-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.NumberArray
getUnscaledArray(java.lang.String itemName)
Liefert eine Unskalierte-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.Data.NumberValue
getUnscaledValue(java.lang.String itemName)
Liefert eine Unskalierte-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.boolean
isArray()
Prüft, ob das Datum ein Array ist.boolean
isDefined()
Prüft, ob das Datum über den Datenverteiler verschickt werden kann.boolean
isList()
Prüft, ob das Datum eine Liste ist, d.h. aus Sub-Daten besteht.boolean
isPlain()
Prüft, ob das Datum ein einfaches Datum ohne untergeordnete Sub-Daten ist.java.util.Iterator<Data>
iterator()
Liefert einen Iterator zurück, der über die Sub-Daten dieser Liste oder die Element-Daten dieses Arrays iteriert.void
setToDefault()
Setzt bei einem Datum alle Werte auf die definierte Default-Werte.java.lang.String
toString()
Liefert eine textliche Darstellung des Datums mit Name und Wert.default Data
updated()
Diese Methode prüft, ob das Datum in einer älteren Version der Attributgruppe vorliegt, und überträgt das Datum auf die aktuelle Version der Attributgruppe, falls notwendig und möglich.default Data
updated(ClientDavInterface connection)
Deprecated.Derconnection
-Parameter wird nicht mehr benötigt.java.lang.String
valueToString()
Liefert eine textliche Darstellung des Werts eines Datums zurück.
-
-
-
Method Detail
-
createModifiableCopy
Data createModifiableCopy()
Liefert eine modifizierbare Kopie eines Datensatzes zurück. Diese Methode kann verwendet werden, um eine Kopie von einem empfangenen (nicht modifizierbaren) Datensatz zu erstellen und die Kopie mit eventuell veränderten Attributwerten wieder zu versenden. Die Methode funktioniert i.a. nur auf ganzen Datensätzen. Bei Data-Objekten, die nur Teile oder einzelne Attributwerte repräsentieren wird eine IllegalStateException generiert.- Returns:
- Veränderbare Kopie des Datensatzes.
- Throws:
java.lang.IllegalStateException
- wenn das Data-Objekt keinen ganzen Datensatz enthält.
-
updated
@Deprecated default Data updated(ClientDavInterface connection)
Deprecated.Derconnection
-Parameter wird nicht mehr benötigt.Diese Methode prüft, ob das Datum in einer älteren Version der Attributgruppe vorliegt, und überträgt das Datum auf die aktuelle Version der Attributgruppe, falls notwendig und möglich.- Attribute, die in beiden Versionen gleich geblieben sind (oder kompatibel sind), werden beibehalten.
- Attribute, die in der neuen Version weggefallen sind, werden gelöscht.
- Attribute, die in der neuen Version hinzugefügt wurden, werden auf den Default-Wert gesetzt (falls vorhanden).
- Attribute, die inkompatibel geändert wurden, werden auf undefiniert gelassen.
Beispiel-Code:
Data oldData = ...; Data updatedData = oldData.updated(connection); if (oldData == updatedData) { // Das Datum war bereits auf der aktuellen Attributgruppen-Version } else if (updatedData.isDefined()) { // Das Datum wurde erfolgreich aktualisiert } else { // Es sind Attribute hinzugekommen oder geändert worden, für die keine Werte ermittelt werden konnten. // Das Datum muss vor dem Benutzen also z. B. händisch korrigiert werden }
- Parameters:
connection
- Datenverteiler-Verbindung- Returns:
- Wenn das Datum aktualisiert wurde, eine veränderbare Kopie des aktualisierten Datums. Wenn keine Aktualisierung notwendig war, wird
this
zurückgegeben! In diesem Fall ist nicht garantiert, dass das Datum änderbar ist, oder die Bearbeitung keine Nebeneffekte hat. Der Aufrufer muss ggf. mitif (oldData == updatedData) ...
prüfen, ob das Datum verändert wurde. Ebenfalls sollte der Anwender vermutlich mitisDefined()
prüfen, ob das neue Datum gültig ist, ober ob einzelne Attribute korrigiert werden müssen. - Throws:
java.lang.IllegalStateException
- wenn das Data-Objekt keinen ganzen Datensatz enthält.- Since:
- 3.12
-
updated
default Data updated()
Diese Methode prüft, ob das Datum in einer älteren Version der Attributgruppe vorliegt, und überträgt das Datum auf die aktuelle Version der Attributgruppe, falls notwendig und möglich.- Attribute, die in beiden Versionen gleich geblieben sind (oder kompatibel sind), werden beibehalten.
- Attribute, die in der neuen Version weggefallen sind, werden gelöscht.
- Attribute, die in der neuen Version hinzugefügt wurden, werden auf den Default-Wert gesetzt (falls vorhanden).
- Attribute, die inkompatibel geändert wurden, werden auf undefiniert gelassen.
Beispiel-Code:
Data oldData = ...; Data updatedData = oldData.updated(connection); if (oldData == updatedData) { // Das Datum war bereits auf der aktuellen Attributgruppen-Version } else if (updatedData.isDefined()) { // Das Datum wurde erfolgreich aktualisiert } else { // Es sind Attribute hinzugekommen oder geändert worden, für die keine Werte ermittelt werden konnten. // Das Datum muss vor dem Benutzen also z. B. händisch korrigiert werden }
- Returns:
- Wenn das Datum aktualisiert wurde, eine veränderbare Kopie des aktualisierten Datums. Wenn keine Aktualisierung notwendig war, wird
this
zurückgegeben! In diesem Fall ist nicht garantiert, dass das Datum änderbar ist, oder die Bearbeitung keine Nebeneffekte hat. Der Aufrufer muss ggf. mitif (oldData == updatedData) ...
prüfen, ob das Datum verändert wurde. Ebenfalls sollte der Anwender vermutlich mitisDefined()
prüfen, ob das neue Datum gültig ist, ober ob einzelne Attribute korrigiert werden müssen. - Throws:
java.lang.IllegalStateException
- wenn das Data-Objekt keinen ganzen Datensatz enthält.- Since:
- 3.14
-
createUnmodifiableCopy
Data createUnmodifiableCopy()
Liefert eine nicht modifizierbare Kopie eines Datensatzes zurück. Die Methode funktioniert i.a. nur auf ganzen Datensätzen. Bei Data-Objekten, die nur Teile oder einzelne Attributwerte repräsentieren wird eine IllegalStateException generiert.- Returns:
- Nicht änderbare Kopie des Datensatzes.
- Throws:
java.lang.IllegalStateException
- wenn das Data-Objekt keinen ganzen Datensatz enthält.
-
getName
java.lang.String getName()
Liefert den Namen eines Datums zurück.- Returns:
- Name des Datums
-
valueToString
java.lang.String valueToString()
Liefert eine textliche Darstellung des Werts eines Datums zurück.- Returns:
- Wert des Datums
-
toString
java.lang.String toString()
Liefert eine textliche Darstellung des Datums mit Name und Wert.- Overrides:
toString
in classjava.lang.Object
- Returns:
- Name und Wert des Datums
-
getAttributeType
AttributeType getAttributeType()
Liefert den Attribut-Typ eines Datums zurück.- Returns:
- Attribut-Typ des Datums
-
getAttributeGroup
@Nullable default AttributeGroup getAttributeGroup()
Liefert die Attributgruppe eines Datums zurück. Die Attributgruppe ist hier nur ermittelbar, wenn es sich um eine unterstützte Implementierung vonData
handelt, und wenn es sich um den strukturierten Datensatz handelt, der direkt die Attributgruppe repräsentiert (keinen innerhalb der Hierarchie liegenden Datensatz, sondern die "Wurzel")- Returns:
- Die Attributgruppe eines Datums, oder `null`, falls nicht ermittelbar.
- Since:
- 3.12
-
isDefined
boolean isDefined()
Prüft, ob das Datum über den Datenverteiler verschickt werden kann. Die Methode gibttrue
zurück, wenn jedes Attribut einen Wert besitzt, der ungleich dem "undefiniert" Wert ist. Ist das Datum ein Array oder eine Liste, so wird jedes Element geprüft ob es einen gültigen Wert besitzt. Die Prüfung findet auf alle "Sub-Daten" des Datums statt.- Returns:
- true = Das Datum enthält gültige Werte und kann über den Datenverteiler verschickt werden; false = Das Datum enthält mindestens ein Attribut, das einen undefinierten Wert besitzt und kann somit nicht über den Datenverteiler verschickt werden
-
setToDefault
void setToDefault()
Setzt bei einem Datum alle Werte auf die definierte Default-Werte. Wurde weder beim Attribut noch beim Attributtyp ein Default-Wert definiert so wird der "undefiniert" Wert gesetzt. Ist das Datum eine Liste oder ein Array, so wird bei jedem Element der Default-Wert gesetzt. Der Vorgang wird solange fortgesetzt, bis alle "Sub-Daten" mit einem Default-Wert/Undefiniert-Wert definiert sind.- See Also:
isDefined()
-
isList
boolean isList()
Prüft, ob das Datum eine Liste ist, d.h. aus Sub-Daten besteht.- Returns:
true
, falls das Datum eine Liste ist, sonstfalse
.
-
isArray
boolean isArray()
Prüft, ob das Datum ein Array ist.- Returns:
true
, falls das Datum ein Array ist, sonstfalse
.
-
isPlain
boolean isPlain()
Prüft, ob das Datum ein einfaches Datum ohne untergeordnete Sub-Daten ist.- Returns:
true
, falls das Datum eine einfaches Datum ist, sonstfalse
.
-
getItem
Data getItem(java.lang.String itemName)
Bestimmt das Sub-Datum dieser Liste mit dem angegebenen Namen.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Gewünschtes Sub-Datum.
- Throws:
java.util.NoSuchElementException
- falls nicht vorhanden.
-
containsItem
default boolean containsItem(java.lang.String itemName)
Ermittelt, ob es ein Sub-Datum mit dem angegebenen Namen gibt.- Parameters:
itemName
- Name- Returns:
- true, wenn enthalten, sonst false
- Since:
- 3.12
-
asTextValue
Data.TextValue asTextValue()
Liefert eine Text-Ansicht auf dieses einfache Datum zurück.- Returns:
- Text-Ansicht des Datums.
-
getTextValue
Data.TextValue getTextValue(java.lang.String itemName)
Liefert eine Text-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Text-Ansicht des Sub-Datums.
-
asTimeValue
Data.TimeValue asTimeValue()
Liefert eine Zeit-Ansicht auf dieses einfache Datum zurück.- Returns:
- Zeit-Ansicht des Datums.
-
getTimeValue
Data.TimeValue getTimeValue(java.lang.String itemName)
Liefert eine Zeit-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Zeit-Ansicht des Sub-Datums.
-
asScaledValue
Data.NumberValue asScaledValue()
Liefert eine Skalierte-Ansicht auf dieses einfache Datum zurück.- Returns:
- Skalierte-Ansicht des Datums.
-
getScaledValue
Data.NumberValue getScaledValue(java.lang.String itemName)
Liefert eine Skalierte-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Skalierte-Ansicht des Sub-Datums.
-
asUnscaledValue
Data.NumberValue asUnscaledValue()
Liefert eine Unskalierte-Ansicht auf dieses einfache Datum zurück.- Returns:
- Unskalierte-Ansicht des Datums.
-
getUnscaledValue
Data.NumberValue getUnscaledValue(java.lang.String itemName)
Liefert eine Unskalierte-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Unskalierte-Ansicht des Sub-Datums.
-
asReferenceValue
Data.ReferenceValue asReferenceValue()
Liefert eine Referenz-Ansicht auf dieses einfache Datum zurück.- Returns:
- Referenz-Ansicht des Datums.
-
getReferenceValue
Data.ReferenceValue getReferenceValue(java.lang.String itemName)
Liefert eine Referenz-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Referenz-Ansicht des Sub-Datums.
-
asArray
Data.Array asArray()
Liefert eine Array-Ansicht auf dieses Array zurück.- Returns:
- Array-Ansicht des Datums.
-
getArray
Data.Array getArray(java.lang.String itemName)
Liefert eine Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Array-Ansicht des Sub-Datums.
-
asTextArray
Data.TextArray asTextArray()
Liefert eine Text-Array-Ansicht auf dieses Array zurück.- Returns:
- Text-Array-Ansicht des Datums.
-
getTextArray
Data.TextArray getTextArray(java.lang.String itemName)
Liefert eine Text-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Text-Array-Ansicht des Sub-Datums.
-
asTimeArray
Data.TimeArray asTimeArray()
Liefert eine Time-Array-Ansicht auf dieses Array zurück.- Returns:
- Time-Array-Ansicht des Datums.
-
getTimeArray
Data.TimeArray getTimeArray(java.lang.String itemName)
Liefert eine Time-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Time-Array-Ansicht des Sub-Datums.
-
asScaledArray
Data.NumberArray asScaledArray()
Liefert eine Skalierte-Array-Ansicht auf dieses Array zurück.- Returns:
- Skalierte-Array-Ansicht des Datums.
-
getScaledArray
Data.NumberArray getScaledArray(java.lang.String itemName)
Liefert eine Skalierte-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Skalierte-Array-Ansicht des Sub-Datums.
-
asUnscaledArray
Data.NumberArray asUnscaledArray()
Liefert eine Unskalierte-Array-Ansicht auf dieses Array zurück.- Returns:
- Unskalierte-Array-Ansicht des Datums.
-
getUnscaledArray
Data.NumberArray getUnscaledArray(java.lang.String itemName)
Liefert eine Unskalierte-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Unskalierte-Array-Ansicht des Sub-Datums.
-
asReferenceArray
Data.ReferenceArray asReferenceArray()
Liefert eine Referenz-Array-Ansicht auf dieses Array zurück.- Returns:
- Referenz-Array-Ansicht des Datums.
-
getReferenceArray
Data.ReferenceArray getReferenceArray(java.lang.String itemName)
Liefert eine Referenz-Array-Ansicht auf das Sub-Datum dieser Liste mit dem angegebenen Namen zurück.- Parameters:
itemName
- Name des gewünschten Sub-Datums.- Returns:
- Referenz-Array-Ansicht des Sub-Datums.
-
iterator
java.util.Iterator<Data> iterator()
Liefert einen Iterator zurück, der über die Sub-Daten dieser Liste oder die Element-Daten dieses Arrays iteriert.- Specified by:
iterator
in interfacejava.lang.Iterable<Data>
- Returns:
- Iterator über die Sub-Daten dieser Liste oder die Element-Daten dieses Arrays.
-
-