1 package com.neuronrobotics.bowlerstudio.scripting;
3 import groovy.lang.Binding;
4 import groovy.lang.GroovyShell;
5 import groovy.lang.Script;
8 import java.io.IOException;
9 import java.util.ArrayList;
10 import java.util.Arrays;
12 import org.codehaus.groovy.control.CompilationFailedException;
13 import org.codehaus.groovy.control.CompilerConfiguration;
14 import org.codehaus.groovy.control.customizers.*;
16 import com.neuronrobotics.sdk.common.BowlerAbstractDevice;
17 import com.neuronrobotics.sdk.common.DeviceManager;
22 private Object
inline(Object code, ArrayList<Object> args)
throws Exception {
23 CompilerConfiguration cc =
new CompilerConfiguration();
24 cc.addCompilationCustomizers(
new ImportCustomizer()
27 "com.neuronrobotics.sdk.util.ThreadUtil",
28 "eu.mihosoft.vrl.v3d.Transform",
29 "com.neuronrobotics.bowlerstudio.vitamins.Vitamins")
32 Binding binding =
new Binding();
48 binding.setVariable(
"args", args);
51 .getClassLoader(), binding, cc);
54 if (String.class.isInstance(code)) {
55 script = shell.parse((String) code);
56 }
else if (File.class.isInstance(code)) {
57 script = shell.parse((File) code);
76 return "// code here";
80 public Object
inlineScriptRun(File code, ArrayList<Object> args)
throws Exception {
81 return inline(code, args);
86 public Object
inlineScriptRun(String code, ArrayList<Object> args)
throws Exception {
87 return inline(code, args);
100 return new ArrayList<>(Arrays.asList(
"groovy",
"java"));
109 public String[] step() {
111 return new String[]{
"fileame.groovy",
"345"};
Object inlineScriptRun(File code, ArrayList< Object > args)
ArrayList< String > getFileExtenetion()
IDebugScriptRunner compileDebug(File f)
Object inlineScriptRun(String code, ArrayList< Object > args)
String getDefaultContents()
static String[] getImports()