From d73e6b7f9fa49c9cd36867e4e030c83896ac6ceb Mon Sep 17 00:00:00 2001
From: "j.goderbauer" <j.goderbauer@adito.de>
Date: Tue, 27 Nov 2018 13:15:06 +0100
Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1027750][JDito -
 libray Standard ist komplett definiert und wird in allen libs verwendet]
 refactor IndexSearch_lib

---
 .../indexsearchgroups/org/affectedIds.js      |  15 +-
 .../indexsearchgroups/pers/affectedIds.js     |  15 +-
 process/IndexSearch_lib/process.js            | 129 ++++++++++--------
 3 files changed, 85 insertions(+), 74 deletions(-)

diff --git a/aliasDefinition/Data_alias/indexsearchgroups/org/affectedIds.js b/aliasDefinition/Data_alias/indexsearchgroups/org/affectedIds.js
index ae199b2018a..59126ad58df 100644
--- a/aliasDefinition/Data_alias/indexsearchgroups/org/affectedIds.js
+++ b/aliasDefinition/Data_alias/indexsearchgroups/org/affectedIds.js
@@ -2,12 +2,13 @@ import("system.db");
 import("system.result");
 import("system.vars");
 import("IndexSearch_lib");
-var indexHelper, infoContainer, onUpdFn, tableName, res;
+import("Sql_lib");
+
+var infoContainer, onUpdFn, tableName, res;
 
-indexHelper = new IndexsearchUtils();
 tableName = vars.get("$local.table");
 idValue = vars.get("$local.idvalue");
-infoContainer =  indexHelper.createAffectedInfoContainer(idValue, null, vars.get("$local.action")
+infoContainer =  IndexsearchUtils.createAffectedInfoContainer(idValue, null, vars.get("$local.action")
     ,function (){return vars.get("$local.columns")}
     ,function (){return vars.get("$local.oldvalues")}
     ,function (){return vars.get("$local.values")});
@@ -21,16 +22,16 @@ switch (tableName)
         res = db.array(db.COLUMN, "select RELATION.RELATIONID from RELATION where RELATION.PERS_ID is null and RELATION.ORG_ID = '" + idValue + "'");
         break;
     case "ADDRESS":
-        res = indexHelper.getAffectedIdValues("RELATION_ID", infoContainer, function (id){
+        res = IndexsearchUtils.getAffectedIdValues("RELATION_ID", infoContainer, function (id){
             return db.array(db.COLUMN, ["select ADDRESS.RELATION_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [
-                    [id, db.getColumnTypes("ADDRESS", ["ADDRESSID"])[0]]
+                    [id, SqlUtils.getSingleColumnType("ADDRESS", ["ADDRESSID"])]
             ]]);
         });
         break;
     case "COMM":
-        res = indexHelper.getAffectedIdValues("RELATION_ID", infoContainer, function (id){
+        res = IndexsearchUtils.getAffectedIdValues("RELATION_ID", infoContainer, function (id){
             return db.array(db.COLUMN, ["select ADDRESS.RELATION_ID from COMM where COMMID = ?", [
-                    [id, db.getColumnTypes("COMM", ["COMMID"])[0]]
+                    [id, SqlUtils.getSingleColumnType("COMM", ["COMMID"])]
             ]]);
         });
         break;
diff --git a/aliasDefinition/Data_alias/indexsearchgroups/pers/affectedIds.js b/aliasDefinition/Data_alias/indexsearchgroups/pers/affectedIds.js
index a87cc105b49..80d3d357646 100644
--- a/aliasDefinition/Data_alias/indexsearchgroups/pers/affectedIds.js
+++ b/aliasDefinition/Data_alias/indexsearchgroups/pers/affectedIds.js
@@ -2,12 +2,13 @@ import("system.db");
 import("system.result");
 import("system.vars");
 import("IndexSearch_lib");
-var indexHelper, infoContainer, onUpdFn, tableName, res;
+import("Sql_lib");
+
+var infoContainer, onUpdFn, tableName, res;
 
-indexHelper = new IndexsearchUtils();
 tableName = vars.get("$local.table");
 idValue = vars.get("$local.idvalue");
-infoContainer =  indexHelper.createAffectedInfoContainer(idValue, null, vars.get("$local.action")
+infoContainer =  IndexsearchUtils.createAffectedInfoContainer(idValue, null, vars.get("$local.action")
     ,function (){return vars.get("$local.columns")}
     ,function (){return vars.get("$local.oldvalues")}
     ,function (){return vars.get("$local.values")});
@@ -24,16 +25,16 @@ switch (tableName)
         res = db.array(db.COLUMN, "select RELATION.RELATIONID from RELATION where RELATION.PERS_ID is not null and RELATION.ORG_ID = '" + idValue + "'");
         break;
     case "ADDRESS":
-        res = indexHelper.getAffectedIdValues("RELATION_ID", infoContainer, function (id){
+        res = IndexsearchUtils.getAffectedIdValues("RELATION_ID", infoContainer, function (id){
             return db.array(db.COLUMN, ["select ADDRESS.RELATION_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [
-                    [id, db.getColumnTypes("ADDRESS", ["ADDRESSID"])[0]]
+                    [id, SqlUtils.getSingleColumnType("ADDRESS", ["ADDRESSID"])]
             ]]);
         });
         break;
     case "COMM":
-        res = indexHelper.getAffectedIdValues("RELATION_ID", infoContainer, function (id){
+        res = IndexsearchUtils.getAffectedIdValues("RELATION_ID", infoContainer, function (id){
             return db.array(db.COLUMN, ["select ADDRESS.RELATION_ID from COMM where COMMID = ?", [
-                    [id, db.getColumnTypes("COMM", ["COMMID"])[0]]
+                    [id, SqlUtils.getSingleColumnType("COMM", ["COMMID"])]
             ]]);
         });
         break;
diff --git a/process/IndexSearch_lib/process.js b/process/IndexSearch_lib/process.js
index 355f73d542a..87a8adbe541 100644
--- a/process/IndexSearch_lib/process.js
+++ b/process/IndexSearch_lib/process.js
@@ -1,61 +1,70 @@
-function IndexsearchUtils(){
-    this.getAffectedIdValues = function(fieldname, affectedInfoContainer, updateFn){
-        var affectedIds;
-        switch (affectedInfoContainer.action){
-            case "I":  
-                affectedIds = [affectedInfoContainer.newValues[affectedInfoContainer.columns.indexOf(fieldname)]];
-                break;
-            case "U":
-                affectedIds = updateFn.call(null, affectedInfoContainer.id);
-                break;
-            case "D":
-                affectedIds = [affectedInfoContainer.oldValues[affectedInfoContainer.columns.indexOf(fieldname)]];
-                break;
-        }
-        return affectedIds || [];
-    }
-    
-    this.createAffectedInfoContainer = function(changedIdValue, changedTable, action, columnsFn, oldValueFn, newValueFn){
-        var res, internalStorage;
-        internalStorage = {};
-        res = {
-             id: changedIdValue
-            ,table: changedTable
-            ,action: action
-            ,columns: null //null for autocomplete in the ADITO-designer
-            ,oldValues: null 
-            ,newValues: null
-        };
-        Object.defineProperty(res, "columns", {
-            get: function(){
-                if (internalStorage["columns"] == undefined)
-                    internalStorage["columns"] = columnsFn.call(null);
-                return internalStorage["columns"];
-            }
-            ,set: function (v){
-                internalStorage["columns"] = v;
-            }
-        });
-        Object.defineProperty(res, "oldValues", {
-            get: function(){
-                if (internalStorage["oldValues"] == undefined)
-                    internalStorage["oldValues"] = oldValueFn.call(null);
-                return internalStorage["oldValues"];
-            }
-            ,set: function (v){
-                internalStorage["oldValues"] = v;
-            }
-        });
-        Object.defineProperty(res, "newValues", {
-            get: function(){
-                if (internalStorage["newValues"] == undefined)
-                    internalStorage["newValues"] = newValueFn.call(null);
-                return internalStorage["newValues"];
-            }
-            ,set: function (v){
-                internalStorage["newValues"] = v;
-            }
-        });
-        return res;
-    }
+/**
+* provides static methods for special handling of entities in JDito-Processes
+* do not create an instance of this
+* @class
+* @static
+*/
+function IndexsearchUtils(){
+}
+
+//todo: comment
+IndexsearchUtils.getAffectedIdValues = function(fieldname, affectedInfoContainer, updateFn) {
+    var affectedIds;
+    switch (affectedInfoContainer.action){
+        case "I":  
+            affectedIds = [affectedInfoContainer.newValues[affectedInfoContainer.columns.indexOf(fieldname)]];
+            break;
+        case "U":
+            affectedIds = updateFn.call(null, affectedInfoContainer.id);
+            break;
+        case "D":
+            affectedIds = [affectedInfoContainer.oldValues[affectedInfoContainer.columns.indexOf(fieldname)]];
+            break;
+    }
+    return affectedIds || [];
+}
+
+//todo: comment
+IndexsearchUtils.createAffectedInfoContainer = function(changedIdValue, changedTable, action, columnsFn, oldValueFn, newValueFn) {
+    var res, internalStorage;
+    internalStorage = {};
+    res = {
+         id: changedIdValue
+        ,table: changedTable
+        ,action: action
+        ,columns: null //null for autocomplete in the ADITO-designer
+        ,oldValues: null 
+        ,newValues: null
+    };
+    Object.defineProperty(res, "columns", {
+        get: function(){
+            if (internalStorage["columns"] == undefined)
+                internalStorage["columns"] = columnsFn.call(null);
+            return internalStorage["columns"];
+        }
+        ,set: function (v){
+            internalStorage["columns"] = v;
+        }
+    });
+    Object.defineProperty(res, "oldValues", {
+        get: function(){
+            if (internalStorage["oldValues"] == undefined)
+                internalStorage["oldValues"] = oldValueFn.call(null);
+            return internalStorage["oldValues"];
+        }
+        ,set: function (v){
+            internalStorage["oldValues"] = v;
+        }
+    });
+    Object.defineProperty(res, "newValues", {
+        get: function(){
+            if (internalStorage["newValues"] == undefined)
+                internalStorage["newValues"] = newValueFn.call(null);
+            return internalStorage["newValues"];
+        }
+        ,set: function (v){
+            internalStorage["newValues"] = v;
+        }
+    });
+    return res;
 }
\ No newline at end of file
-- 
GitLab