Hallo Michael,
jain.
Was ich vermeiden möchte, ist in einem Executable oder in einem einfachen Modul, welches irgendeinen Service aufruft,
dass wir im Modul ein manuelles Mapping der Daten durchführen müssen, Bsp.
- ...
- Map<String, Object> result = (Map<String,Object>) params.get("result");
- ...
- result.put("someKey", someResultObject);
- result.put("anotherKey", anotherResultObject);
- ...
- return result;
Sondern, das wir aus dem Beispiel oben, das ganze Objekt "Mensch" zurückgeben und verwenden können.
Wenn man ein neues Modul entwickelt, wird jeder halbwegs gescheite Java Entwickler Klassen (Models) definieren, mit dem er Objekte erzeugt und mit diesen dann arbeitet.
Meine Frage nun nochmal spezifiziert: Wenn das Modul im Firstspirit Server installiert wird, kann ich dann diese Objekte vom Typ "Mensch", "Human", "Car", was_auch_immer_für_ein_java_Objekt_ich_definiere im CMS verwenden?
Bsp:
Im Template:
$CMS_SET(set_mensch,"Modulname.Mensch.class")$ // definiere Typ der Variable als Mensch aus dem Modul
$CMS_RENDER(script:"some_script_name", result:set_mensch)$
$-- und dann z.B. sowas: --$
$CMS_VALUE(result.someMethod())$ // result ist jetzt vom Typ "Mensch", welches aus dem Modul zurückgegeben wird
Im Modul:
Mensch mensch = new Mensch();
...
mensch.setAbc(abc);
mensch.setDef(def);
...
return mensch;
Java ist eine OOP. Derzeit empfinde ich aber, dass das CMS dieses Konzept missachtet.
Ausgenommen alle Objekte, die Java nativ mitbringt.
Hinweis:
Ein Executable ist evtl. ein schlechtes Beispiel, da hier die Signatur fest definiert wird auf Map<String, Object>.
Aber ein eigenes Modul kann ja zurück geben, was wir definieren.
Hoffe das ist etwas verständlicher
Gruß
Matthias