Increased performance of groovy execution

This commit is contained in:
Lennart Hensler committed 2013-08-16 12:56:43 +02:00
1 parent ebf2a376ab
commit dc8b81d8d5
1 file changed
+6 -6
@@ -2,26 +2,26 @@ package com.sap.sailing.datamining.impl;
import groovy.lang.Binding;
import groovy.lang.GroovyShell;
import groovy.lang.Script;
import com.sap.sailing.datamining.shared.GenericGroupKey;
import com.sap.sailing.datamining.shared.GroupKey;
public class DynamicGrouper<DataType> extends AbstractGrouper<DataType> {
private String scriptText;
private Binding binding;
private Script script;
public DynamicGrouper(String scriptText) {
super();
this.scriptText = scriptText;
binding = new Binding();
script = new GroovyShell().parse(scriptText);
}
@Override
protected GroupKey getGroupKeyFor(DataType dataEntry) {
Binding binding = new Binding();
binding.setVariable("data", dataEntry);
GroovyShell shell = new GroovyShell(binding);
Object value = shell.evaluate(scriptText);
script.setBinding(binding);
Object value = script.run();
return new GenericGroupKey<Object>(value);
}