Personen
Informationen
TaskManagement
Software & Systeme
Entwicklung
Organisation
Marketing
Archiv
String key String name String type String tag String data Boolean dataRead Long cts_ts Long val_ts DexUser target static belongsTo = [ owner : DexUser ]
static mapping = { data type:'text' name type:'text' tag type:'text' }
static final Long DEFAULT_VALID_TIME_MS=604800000l // one week String username Long val_time_ms static hasMany = [ whiteList : DexWhiteListEntry, forwardRules : DexForwardRule, dexData : DexData ] static mappedBy = [ dexData :'owner' ]
static constraints = { whiteList nullable:true forwardRules nullable:true dexData nullable:true username nullable:false, unique:true val_time_ms nullable:true } static mapping = { forwardRules sort:'precedence', order:'asc' whiteList sort:'allowedUser', order:'asc' dexData sort:'cts_ts', order:'desc' }
String allowedUser static belongsTo = [ owner : DexUser ]
String keyRule String name Boolean active Long precedence Long val_ts Boolean exit static hasMany = [ dataSources : DexForwardSource, dataTypes : DexForwardType, dataTags : DexForwardTag, dataTargets : DexForwardTarget ]
static belongsTo = [ owner : DexUser ]
String value static belongsTo = [ owner : DexForwardRule ]
String value static belongsTo = [ owner : DexForwardRule ]
String value static belongsTo = [ owner : DexForwardRule ]
String value static belongsTo = [ owner : DexForwardRule ]
Boolean performCall ( String itentis, String itoris, String key, String name, String target, String type, String tag, String data, Long val_ts) {
Erzeugt ein DexData-Objekt. Der versendende User, dessen Name durch den Sitzungsschlüssel automatisch ermittelt wird, wird gesucht, oder erstmals angelegt.
Die Methode schlägt nur an, falls entweder kein TargetUser angegeben wurde, oder der Absender beim angegebenen TargetUser auf dessen WhiteList steht.
Die Methode sucht, falls ein existierender Target-User angegeben wurde, ob dessen Whitelist eine Einstellung der DexData erlaubt.
Ist kein TargetUser angegeben, handelt es sich um ein privates DexData und wird somit nur mit dem owner erzeugt.
Ist der TargetUser angegeben und der Absender befindet sich auf dessen WhiteList, wird nach einer ForwardRule gesucht.
Falls keine ForewardRule existiert, wird ein DexData erzeugt und dem TargetUser zugeordnet.
Existiert eine ForewardRule, wird für jeden gültigen Eintrag ein DexData erstellt und der owner durch den Eigentümer der ForwardRule ersetzt. Falls keine einzige Regel greift, wird ein einzelnes DexData dem TargetUser zugeordnet. Falls wenigstes eine Regel gegriffen hat, erhält der TargetUser selbst möglicherweise keine Kopie des weitergeleiteten DexData.
Long performCall ( String itentis, String itoris, String typ, String tag) {
Ermittelt die Anzahl der DexData-Elemente, die für diesen User existieren. Die Ermittlung der anzahl kann durch den tag oder den type-Parameter eingeschränkt werden (oder durch beide). Die Angabe dieser Parameter ist jedoch optional.
List<DexDataEnvelope> performCall ( String itentis, String itoris, Boolean isTarget, Boolean isSource, Long offsetItems, Long maxItems) {
Listet alle DexData auf und und gibt eine Liste der Namens/Schlüssel-Paare zurück. Dabei muss die maximale Länge der Liste durch den maxItems-Parameter und der Beginn der Liste im absoluten Ergebnis durch den offsetItems-Parameter spezifiziert werden.
Weiterhin ist die List einschränkbar auf die Einträge, die dem User von anderen Usern bereitgestellt wurden, falls isTarget gesetzt ist.
Oder auf die Einträge, die von dem aufrufenden User an andere User gesendet wurden. Dh. alle Einträge, deren TargetUser nicht null sind und vom User abweichend lauten.
Die ermittelte Liste ist in jedem Falle unsortiert.
List<DexDataEnvelope> performCall ( String itentis, String itoris, String type, String tag, Boolean sortByTime, Long offsetItems, Long maxItems) {
Diese Methode ermöglicht eine erweiterte Suche. Der Parameter tag ist dabei verpflichtend. Ohne angegebenen Tag ergibt die Suche stets die leere Menge.
Zusätzlich kann optional der Parameter type angegeben werden, nach dem dann zusätzlich gesucht wird. Auch die Angaben zu offsetItems und maxItems ist optional.
Die ermittelte Teilmenge wird nach dem Erstellungszeitstempel cts_ts
absteigend sortiert, falls sortByTime gesetzt ist, sonst alphabetisch nach name absteigend.
String performCall ( String itentis, String itoris, String key) {
Ist der Schlüssel eines DexData bekannt, kann dessen Inhalt ermittelt werden, falls der anfragende user entweder mit owner oder target identisch ist. In letzterem Falle, wird das dataRead-Attribute auf true
gesetzt.
Boolean performCall ( String itentis, String itoris, String key) {
Diese Methode löscht ein DexData. Die Löschung ist möglich, falls der anfordernde User entweder mit owner oder dem target identisch ist.
Boolean performCall ( String itentis, String itoris, String key, String name, Boolean active, Long precedence, Long val_ts, Boolean exit, List<String> owners, List<String> targets, List<String> types, List<String> tags) {
Mit dieser Methode kann einer Weiterleitungsregel ForwardRule angelegt oder modifiziert werden. Neu angelegt wird die Regel dann, wenn der eindeitige Schlüssel key nicht zu einer existierenden Regel in der Datenbank passt, oder null ist.
Der Name name kann frei gewähltt werden und für den User zur Gedächtnisstütze dienen.
Das Flag active muss gesetzt sein, falls die Regel angewendet werden soll. Somit kann man eine Regel, die man ausser Kraft setzen möchte stillegen, ohne Sie löschen zu müssen.
Der Zeitstempel val_ts kann angegeben werden. In diesem Fall zeigt er den absoluten Unix-Zeitpunkt in ms an, ab dem die Regel nicht mehr gültig ist. Wird er nicht spezifiziert gilt die Regel permanent.
Die beiden Parameter precedence und exit sind von Bedeutung, falls mehrere Regeln definiert wurden. Alle gültigen Regeln werden in der Reihenfolge aufsteigender Präzendenz interpretiert, solange noch weitere Regeln vorhanden sind und keine vorhergehende Regel zur erzeugung eines DexData geführt hat. Wurde bereits ein DexData erzeugt, wird mit den regel höherer Präzendez nur solange fortgefahren, bis eine Regel erreicht und durch diese ein DexData angelegt wird, deren exit Flag gesetzt ist.
Falls Werte für owners, targets und types spezifizert sind, kann die entsprechende Regel nur angewendet werden, falls owner, taget und type in den Listen vorkommt (und-Verknüpfung).
Eine Weiterleitung ist nur sinnvoll, falls mindestens ein target durch dessen Nutzernamen spezifiziert wurde. Werden mehrere Nutzernamen (targets) angegeben, wird für jeden ein eigenes DexData angelegt. Möchte der Eigentümer dieser weiterleitingsregel selbst eine kopie erhalten, muss er ebenso seinen eigenen Nutzernamen in targets eintragen, andernfalls würde er keine Benachrichtigung über die weitergeleiteten DexData-Objekte erhalten. Dies ist in einigen Fällen durchaus wünschenswert.
List<KeyNamePair> performCall ( String itentis, String itoris) {
Liefert eine vollständige Liste der Weiterleitungsregeln des Users zurück, bestehend aus Name-Schlüssel-Paaren.
DexForwardRule performCall ( String itentis, String itoris, String key) {
Liefert den Inhalt einer Weiterleitungsregel zurück, die durch den Schlüssel angegeben wurde.
DexForwardRule { String key String name Boolean active Long precedence Boolean exit Long val_ts List<String> sources List<String> targets List<String> tags List<String> types }
Boolean performCall ( String itentis, String itoris, String key) {
Löscht eine Weiterleitungsregel permanent. Dazu muss der eindeutige Key angegeben werden. Durch den Sitzungsschlüssel wird der eigentümer ermittelt und die löschung erfolgt nur, wenn der Eigentümer bei DexData mit dem Attribut owner oder dem Attribut target identisch sind.
List<String> performCall ( String itentis, String itoris) {
Boolean performCall ( String itentis, String itoris, List<String> owners) {
Boolean performCall ( String itentis, String itoris) {