pbender
I'm new here

Executable Ergebnis verarbeiten

Jump to solution

Hallo Community,

ich habe eine Executable-Klasse und möchte das Ergebnis in einem Script auswerten.

Beispiel:

public class ExampleExecutable implements Executable {

    @Override

    public Object execute(Map<String, Object> context) throws ExecutionException {

        return execute(context, new PrintWriter(System.out), new PrintWriter(System.err));

    }

    @Override

    public Object execute(Map<String, Object> param, Writer out, Writer err)

            throws ExecutionException {

          return Arrays.asList("Hallo", "Welt", "!");

     }

}

Aufgerufen wird das Script folgendermaßen:

#! executable-class

de.example.script.executable.ExampleExecutable

Wie kann ich nun mit dem Ergebnis im Script weiterarbeiten?

Vielen Dank und Grüße

Philipp Bender

0 Kudos
1 Solution

Accepted Solutions

Hi,

ich verstehe die Frage leider nicht Smiley Sad

Wenn das Skript so definiert ist, dass eine Executable genutzt wird, dann ist dies das einzige, was hier passiert. Weiteres Scripting ist hier nicht möglich.

Wieso muss es überhaupt eine Executable sein? Klingt mir eher danach, als würde hier eine Utility-Klasse in einem Modul definiert, die in Beanshell-Skripten genutzt werden soll.

Gruß

Stefan

View solution in original post

0 Kudos
6 Replies
StefanSchulz
I'm new here

Philipp Bender schrieb:

Aufgerufen wird das Script folgendermaßen:

#! executable-class
de.example.script.executable.ExampleExecutable



Wie kann ich nun mit dem Ergebnis im Script weiterarbeiten?



Gar nicht, denn das "Script" wurde auf eine ausführbare Klasse als "Scriptsprache" gesetzt, sprich, es wird die angegebene Klasse ausgeführt.

Warum soll die Auswertung nicht innerhalb des Executable stattfinden?

Gruß

Stefan

0 Kudos

Hallo Stefan,

danke für die Antwort.

Das ganze dient als Refactoring von altem Beanshell-Scripten. Architekturbedingt muss ich auf das Ergebnis zugreifen, um nicht die kompletten Beanshell-Scripte auf einen Schlag auszulagern. Dies würde sehr viel Aufwand verursachen.

Kann ich über context.setProperty den entsprechenden Rückgabewert bereitstellen und darauf zugreifen?

Viele Grüße

Philipp Bender

0 Kudos

Hi,

ich verstehe die Frage leider nicht Smiley Sad

Wenn das Skript so definiert ist, dass eine Executable genutzt wird, dann ist dies das einzige, was hier passiert. Weiteres Scripting ist hier nicht möglich.

Wieso muss es überhaupt eine Executable sein? Klingt mir eher danach, als würde hier eine Utility-Klasse in einem Modul definiert, die in Beanshell-Skripten genutzt werden soll.

Gruß

Stefan

0 Kudos

Hallo Stefan,

eine Utility Klasse trifft wohl eher zu. Habe ich die Möglichkeit in einer Utility Klasse auf den Context zuzugreifen?

Viele Grüße

Philipp

0 Kudos

Die Implementierung liegt ja bei dir, und somit auch die Parameterisierung von Methoden Smiley Wink

Gruß

Stefan

Oha :smileygrin:, da stand ich aber auf einem dicken Schlauch.

Danke für den Hinweis.

0 Kudos