Questions & Answers

SOLVED
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

Type a product name