===== AgilogikDescriptAccessor ===== ==== AppendDescriptEntryService ==== Anhängen eines neuen Objektes an das Ende eines Listenobjektes. == Parameter == String itentis, String itoris, String descript_key - Schlüssel des Objektes an das der Eintrag angehängt werden soll. * String descriptName - Gewünschter Name des neuen Objektes * Boolean isObject Boolean isArray String dataText Long dataNumber Double dataDecimal Boolean dataBoolean == Return == String * **UUID** Eindeutiger Datenschlüssel, falls der Eintrag angehängt werden konnte. * **null** sonst. == Beschreibung == Erzeugt aus den angegebenen werten einen physikalisch neuen Eintrag, dem ein neuer Datenschlüssel erzeugt wird. (Handelt es sich selbst um ein Objekt, so ist dieses zunächst leer.) Die Angabe der einzelnen Werte ist freigestellt. Achtung der Prozessor erlaubt die Nutzung mehrerer Typen gleichzeitig, was aber zu Datenverlusten führen kann, falls die Einträge später als JSON ausgelesen werden sollen. Dort wird das JSON Objekt nach einer Präzedenzregel zusammen gestellt. Nachrangige Werte werden fallengelassen. ==== CreateDescriptEntryService ==== Erzeugen eines Rootobjektes. (Dh. der Parent-Eintrag ist **null**) == Parameter == String itentis, String itoris, String descriptName - Angabe zwingend * Boolean isObject, Boolean isArray, String dataText, Long dataNumber, Double dataDecimal, Boolean dataBoolean, == Return == Boolean * **true** Falls das Root-Objekt erzeugt werden konnten * **false** sonst. == Beschreibung == Erzeugt ein ROOT(!)-Objekt mit den angegebenen Werten. ==== CreateDescriptObjectAsJsonService ==== Erzeugt ein Rootobjekt aus einem gültigen JSON-String. == Parameter == String itentis, String itoris, String descriptName - Name des zu erzeugenden Objektes * String dataJson - Gültiger JSON-Text-Ausdruck (dh. mindestens "{}") * == Return == String * **UUID** Binärer Schlüssel des neu erzeugten Objektes. * **null** sonst. == Beschreibung == Erzeugung eines neuen RootObjektes aus einem gültigen parsbaren JSON Ausdruck. Die Eindeutigkeit des Namens wird nicht geprüft. ==== DeleteDescriptEntryService ==== Rekursives endgültiges Löschen eines Descript-Objektes, samt Inhalts, spezifiziert durch seinen System-Eindeutigen Binärschlüssel. == Parameter == String itentis String itoris String descriptKey - Eindeutiger Binärschlüssel des zu löschenden Objektes * == Return == Boolean * **true** falls, das Objekt gefunnden werden konnte und eine erfolgreiche Löschung durchgeführt wurde. * **false** sonst. == Beschreibung == Rekursive Löschung eines Objektes, samt seiner Unterobjekte und Untereinträge. Vorsicht! Methode ist nicht umkehrbar. ==== DeleteDescriptEntryBaNameService ==== Rekursive Löschung eines Elementes in einem Objekt, samt seines Inhaltes und seiner Unterobjekte. == Parameter == String itentis String itoris String descriptKey - Eindeutiger Binärschlüssel des Objektes, dessen Inhalt gelöscht werden soll String descriptName - Name des Eintrages, der gelöscht werden soll. == Return == Boolean * **true** falls das Objekt gefunden werden konnte und ein Element mit dem angegebenen Namen aufinfbar war. * **false** sonst. == Beschreibung == Es wird ein Objekt mit dem angegenen Schlüssel (//descriptKey//) gesucht und der Eintrag oder das Objekt ermittelt, daß innerhalb dieses Objektes den angegebenen Namen trägt. Wird ein solches Element oder Objekt gefunden, so wiord dieses physikalisch gelöscht. Handelt es sich um ein Objekt, wird auch dessen Inhalt rekuriv gelöscht. Das Objekt, welches durch den Schlüssel identifiziert wurde bleibt aber in jedem Fall erhalten, auch falls es nach der Löschung leer ist. Dieser Service benötigt für das gesuchte Objekt //UPDATE// Privileg und für das zu löschende Objekt //DELETE// Privileg. ==== InsertDescript EntryService ==== Erzeugt ein neues Element und fügt es in ein existierendes, geordnetes Objekt ein. == Parameter == String itentis String itoris String descriptKey - Eindeutiger Schlüssel des existierenden geordneten Objektes * Long descriptArrayIndex - Index an dem das neue Element eingefügt werden soll. * String descriptName - Name des neuen Elementes * Boolean isObject Boolean isArray String dataText Long dataNumber Double dataDecimal Boolean dataBoolean == Return == String * **UUID** Schlüssel des neu erzeugten Elementes * **null** sonst. == Beschreibung == Es wird ein Objekt mit dem angegebenen Schlüssel gesucht. Handelt es sich dabei um ein geordnetes (Listen-) Objekt und befindet sich der Index (Zählung beginnt bei **0**) im gültigen Bereich, so wird ein neuse Element oder Objekt mit den angegebenen Werten erzeugt und in das geordnete Objekt an den angegebenen Index eingefügt. Alle Elemente oder Objekte höheren Index, werden um 1 inkrementiert. Der Schlüssel des neu erzeugten Elementes wird im Erfolgsfalle zurückgegeben. Für das Objekt, in das eingefügt werden soll wird //UPDATE// Provileg gefordert. ==== PutDescriptEntryService ==== Erzeugt ein neues Element und fügt es in ein existierendes, ungeordnetes Objekt ein. == Parameter == String itentis String itoris String descriptKey - Eindeutiger Schlüssel des existierenden geordneten Objektes * String descriptName - Name des neuen Elementes * Boolean isObject Boolean isArray String dataText Long dataNumber Double dataDecimal Boolean dataBoolean == Return == String * **UUID** Schlüssel des neu erzeugten Elementes * **null** sonst. == Beschreibung == Es wird ein Objekt mit dem angegebenen Schlüssel gesucht. Handelt es sich dabei um ein ungeordnetes (Map-) Objekt, so wird ein neuse Element oder Objekt mit den angegebenen Werten erzeugt und in das geordnete Objekt eingefügt. Für das Objekt, in das eingefügt werden soll wird //UPDATE// Privileg gefordert. ==== PutDescriptObjectContentAsJsonService ==== Fügt ein, als gültiger JSON-Ausdruck angegebenes Objekt in ein existierendes ungeordnetes (Map-) Objekt ein. == Parameter == String itentis String itoris String descriptKey - Schlüssel des existierenden Objektes * String descript_name - Name des neu zu erzeugenden Objektes * String dataJson - Gültiger JSON Ausdruck (min. "{}") * == Return == String * **UUID** Schlüssel des neu erzeugten Objektes im Erfolgsfalle * **null** sonst. == Beschreibung == Es wird ein existierendes Objekt mit dem angegenenen Schlüssel gesucht. Da wird der angegebene gültige JSON Ausdrick ausgewertet und die Baumstrucktur an elementen und Objekten aufgebaut. im erfolgsfalle wird dieses neue Objekt mit dem angegeben Namen in das gesuchte existierende Objekt eingefügt. Der generierte Schlüssel des neu erzeugten Objektstruktur (Schlüssel des Wurzelobjektes) wird zurückgegeben. Für das Objekt, in das einfefügt wird werden nur //UPDATE//-Privilegien verlangt. ==== RetrieveDescriptBooleanDataService ==== Auslesen eines konkreten Datenwertes eines Elementes. == Parameter == String itentis String itoris String descriptKey - Schlüssel des Elements dessen Wert ausgelesen werden soll. == Return == Boolean * **Boolscher Wert** im Erfolgsfall * **null** sonst. == Beschreibung == Das Element mit dem angegebenen schlüssel wird gesucht und der Wert, so vorhanden, ermittelt und zurückgegeben. ==== RetrieveDescriptDecimalDataService ==== Auslesen eines konkreten Datenwertes eines Elementes. == Parameter == String itentis String itoris String descriptKey - Schlüssel des Elements dessen Wert ausgelesen werden soll. == Return == Double * **Zahlen - Wert** im Erfolgsfall * **null** sonst. == Beschreibung == Das Element mit dem angegebenen schlüssel wird gesucht und der Wert, so vorhanden, ermittelt und zurückgegeben. ==== RetrieveDescriptEntryParentService ==== Ermittlung des Mutterobjektes eines bekannten Elements oder Objekts. == Parameter == String itentis String itoris String descriptKey == Return == KeyNamePair * **Schlüssel/Name** Name und Schlüssel der Objektes, welches das gesuchte Objekt beeinhaltet * **null** sonst. == Beschreibung == Von dem Objekt, in dem das gesuchte Element untergebracht ist wird ein Paar aus Schlüssel und Name zurückgegeben. ==== RetrieveDescriptNameService ==== Ermittlung des Namens eines elements oder Objektes, dessen Schlüssel bekannt ist. == Parameter == String itentis String itoris String descriptKey == Return == String * **Name** Name des gesuchten Objektes. * **null** sonst. == Beschreibung == Zu einem gegeben Schlüssel wird der Name des Objektes oder des Elementes gesucht. ==== RetrieveDescriptNumberDataService ==== Auslesen eines konkreten Datenwertes eines Elementes. == Parameter == String itentis String itoris String descriptKey - Schlüssel des Elements dessen Wert ausgelesen werden soll. == Return == Long * **Ganzzahliger Wert** im Erfolgsfall * **null** sonst. == Beschreibung == Das Element mit dem angegebenen schlüssel wird gesucht und der Wert, so vorhanden, ermittelt und zurückgegeben. ==== RetrieveDescriptObjectContentService ==== Ermittlung der Namen und Schlüssel aller Elemente und Objekte eines bekannten Objektes == Parameter == String itentis String itoris String descriptKey == Return == List * **Elementliste** List an Schlüssel/Namens-Paaren von allen Inhaltselemente, oder Objekten. * **null** sonst. == Beschreibung == Es wird ein durch den Schlüssel spezifiziertes Objekt ermittelt. Von allen Elementen oder Objekten, die dieses Objekt beinhaltet, werden die Schlüssel und Namen ermittelt und als List übergeben. ==== RetrieveDescriptObjectContentAsJsonService ==== Kodierung eines bekannten Objekte samt Unterobjekten in JSON. == Parameter == String itentis String itoris String descriptKey == Return == String * **JSON-Ausdruck** Ein Json-Ausdruck, der die Struktiur und Werte aller in den gesuchten Objekt enthaltenen Elemente und Objekte rekuriv beinhaltet. * **null** sonst. == Beschreibung == Es wird ein Objekt mit den gegebenen Schlüssel ermittelt. Der gesammte Inhalte (Elemente imd Objekte) wird rekuriv durchlaufen und als JSON-Ausdruck kodiert. Diese Methode legt also Wert auf die Inhalte. Die Schlüssel der einzelnen Elemente oder Objekt werden **nicht** im JSON Ausdruck übergeben. ==== RetrieveOrderedObjectContentService ==== Ermittlung aller Schlüssel der Elemente oder Objekte einer geordneten Liste. == Parameter == String itentis String itoris String descriptKey == Return == List * **Schlüsselliste** Liste der Schlüssel aller Elemente oder Objekte eines bekannten geordneten Objektes. * **null** sonst. == Beschreibung == Es wird ein geordneten Listenojekt ermittelt. Die Schlüssel aller Elemente oder Objekte, die dieses Listen-Objekt beinhalten werden ausgelistet. Die Reihenfolge der Element bleibt dabei erhalten. ==== RetrieveDescriptTextDataService ==== Auslesen eines konkreten Datenwertes eines Elementes. == Parameter == String itentis String itoris String descriptKey - Schlüssel des Elements dessen Wert ausgelesen werden soll. == Return == String * **Alphanumerischer Wert** im Erfolgsfall. (Länge beliebig) * **null** sonst. == Beschreibung == Das Element mit dem angegebenen Schlüssel wird gesucht und der Wert, so vorhanden, ermittelt und zurückgegeben. ==== RetrieveFirstKeyOccurrenceByNameService ==== Ermittlung des Schlüssels eines namentlichbekannten Elementes in einem Objekt. == Parameter == String itentis String itoris String descriptKey - Schlüssel des Objektes. in dem ein Element namentlich gesucht werden soll. String descriptName - Name des zu suchenden Objektes == Return == String * **UUID** Schlüssel des gesuchten Objektes oder Elementes * **null** sonst. == Beschreibung == Es wird zunächst durch Schlüssel ein passendes Objekt gesucht. Enthält dieses Objekt ein Element oder Objekt mit dem angegebenen Namen, so wird dessen Schlüssel ermittelt und zurückgegeben. Sollten mehrere gleichnamig Elemente vorhanden sein, wird das erste (-beste) gewählt. Diese Implementierung trägt der Eigenschaft Rechnung, dass die Namen innerhalb eines Objektes nicht eindeutig sein müssen. Bemerkung: Sollten Sie vornehmlich die Methoden mit JSON Codierung in Ihrer Anwendung verwenden wollen, empfiehlt es sich die namentliche Eindeutigkeit selbst zu prüfen, da bei einem JSON Export logischerweise Datenverluste auftreten würden. ==== SearchDescriptEntryService ==== Namentliches Suchen von Root-Einträgen. == Parameter == String itentis String itoris String searchParameter - Derzeit nicht verwendet String descriptName - Name des Root-Elements oder Root-Objekts das gesucht wird == Return == List * **UUID-Liste** Schlüssel aller Einträge, die den //descriptName// enthalten. * **null** sonst. == Beschreibung == es werden alle Einträge bestimmt, die keinen Parent-Eintrag haben, sich also auf Root-ebene befinden. Darunter werden alle Elemente oder Objekte bestimmt, deren Namen den angegebenen //descriptName// enthalten. Alle Schlüssel dieser Objekte werden als Liste zurückgegeben. Die Ordnung dieser Liste stellt kein Kriterium dar. ==== UpdateDescriptObjectContentAsJsonService ==== Aktualisierung eines Objektes und seiner gesamten Unterstruktur durch eine JSON kodierte menge an Elementen und Objekten == Parameter == String itentis String itoris String descriptKey - Schlüssel des Objektes, dessen Inhalt aktualisiert werden soll. String dataJson - JSON Codierung des gesamten Inhalts. == Return == Boolean * **true** Falls das Objekt aktualisiert werden konnte. * **false** sonst. == Beschreibung == Das Objekt wird anhand des Schlüssels ermittelt. Technisch gesehen, wird dann sein Parent-Objekt ermittelt und das ermittelte Objekt selbt durch dier JSON-Codierten Daten aktualisiert. Achtung: das Objekt wird vorher **nicht** gelöscht! Dh. der Algorithmus belässt das alte Objekt in seiner bisherigen Struktur und ersetzt nur dort Werte, wo neue Werte spezifiziert sind. Dabei ist ein Typumwandlung bei einfachen Typen (Boolean, Number, Decimal, Text) möglich. Eine Konversion einer Objektes in einen einfachen Type allerdings für zu einem Fehler und der Algorithmus bricht ab, ohne Änderungen durchzuführen. Elemente, die vorhanden waren, aber in der JSON-Codierung nicht aufgeführt sind, werden **belassen** der //update// wird also vor allem als ein //merge// durchgeführt. Ebenso werden nicht JSON-codierte, aber vorher vorhandenen Objekte **nicht** gelöscht. Soll ein kompletter Refresh erfolgen, so müsste das alte Objekt vorher rekuriv gelöscht werden. ==== UpdateDescrpitValuesService ==== Aktualisierung der Werte eines Descript-Elementes == Parameter == String itentis String itoris String descriptKey String descriptName String dataText Long dataNumber Double dataDecimal Boolean dataBoolean == Return == Boolean * **true** Falls der Eintrag aktualisiert werden konnte. * **false** sonst. == Beschreibung == Der existierende Eintrag wird anhand des Schlüssels bestimmt. Dann werden **alle** angegebenen Werte überschrieben. Nur beim Namen wird geprüft of dieser **null** ist, denn ein nicht vorhandener Name ist nicht zugelassen. Für alle anderen Werte wird selbst ein **null**-Eintrag ausgetauscht. So ist a so auch ein Typ-Wechsel möglich. Also vorsicht bitte mit **null**-Werten.