Skip to content

Commit fed84c3

Browse files
committed
Painless: Separate PainlessLookup into PainlessLookup and PainlessLookupBuilder (#32054)
1 parent 71e912f commit fed84c3

29 files changed

+847
-722
lines changed

modules/lang-painless/src/main/java/org/elasticsearch/painless/AnalyzerCaster.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
import org.elasticsearch.painless.lookup.PainlessLookup;
2323
import org.elasticsearch.painless.lookup.PainlessCast;
24-
import org.elasticsearch.painless.lookup.PainlessLookup.def;
24+
import org.elasticsearch.painless.lookup.def;
2525

2626
import java.util.Objects;
2727

modules/lang-painless/src/main/java/org/elasticsearch/painless/MethodWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
package org.elasticsearch.painless;
2121

2222
import org.elasticsearch.painless.lookup.PainlessCast;
23-
import org.elasticsearch.painless.lookup.PainlessLookup.def;
23+
import org.elasticsearch.painless.lookup.def;
2424
import org.objectweb.asm.ClassVisitor;
2525
import org.objectweb.asm.Label;
2626
import org.objectweb.asm.Opcodes;

modules/lang-painless/src/main/java/org/elasticsearch/painless/PainlessScriptEngine.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.elasticsearch.common.component.AbstractComponent;
2525
import org.elasticsearch.common.settings.Settings;
2626
import org.elasticsearch.painless.Compiler.Loader;
27-
import org.elasticsearch.painless.lookup.PainlessLookup;
27+
import org.elasticsearch.painless.lookup.PainlessLookupBuilder;
2828
import org.elasticsearch.painless.spi.Whitelist;
2929
import org.elasticsearch.script.ExecutableScript;
3030
import org.elasticsearch.script.ScriptContext;
@@ -102,9 +102,11 @@ public PainlessScriptEngine(Settings settings, Map<ScriptContext<?>, List<Whitel
102102
for (Map.Entry<ScriptContext<?>, List<Whitelist>> entry : contexts.entrySet()) {
103103
ScriptContext<?> context = entry.getKey();
104104
if (context.instanceClazz.equals(SearchScript.class) || context.instanceClazz.equals(ExecutableScript.class)) {
105-
contextsToCompilers.put(context, new Compiler(GenericElasticsearchScript.class, new PainlessLookup(entry.getValue())));
105+
contextsToCompilers.put(context, new Compiler(GenericElasticsearchScript.class,
106+
new PainlessLookupBuilder(entry.getValue()).build()));
106107
} else {
107-
contextsToCompilers.put(context, new Compiler(context.instanceClazz, new PainlessLookup(entry.getValue())));
108+
contextsToCompilers.put(context, new Compiler(context.instanceClazz,
109+
new PainlessLookupBuilder(entry.getValue()).build()));
108110
}
109111
}
110112

modules/lang-painless/src/main/java/org/elasticsearch/painless/lookup/PainlessLookup.java

Lines changed: 3 additions & 689 deletions
Large diffs are not rendered by default.

modules/lang-painless/src/main/java/org/elasticsearch/painless/lookup/PainlessLookupBuilder.java

Lines changed: 774 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Licensed to Elasticsearch under one or more contributor
3+
* license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright
5+
* ownership. Elasticsearch licenses this file to you under
6+
* the Apache License, Version 2.0 (the "License"); you may
7+
* not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package org.elasticsearch.painless.lookup;
21+
22+
/** Marker class for def type to be used during type analysis. */
23+
public final class def {
24+
25+
private def() {
26+
27+
}
28+
}

modules/lang-painless/src/main/java/org/elasticsearch/painless/node/EAssignment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import org.elasticsearch.painless.AnalyzerCaster;
2424
import org.elasticsearch.painless.DefBootstrap;
2525
import org.elasticsearch.painless.lookup.PainlessCast;
26-
import org.elasticsearch.painless.lookup.PainlessLookup.def;
26+
import org.elasticsearch.painless.lookup.def;
2727
import org.elasticsearch.painless.Globals;
2828
import org.elasticsearch.painless.Locals;
2929
import org.elasticsearch.painless.Location;

modules/lang-painless/src/main/java/org/elasticsearch/painless/node/EBinary.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.elasticsearch.painless.AnalyzerCaster;
2323
import org.elasticsearch.painless.DefBootstrap;
2424
import org.elasticsearch.painless.lookup.PainlessLookup;
25-
import org.elasticsearch.painless.lookup.PainlessLookup.def;
25+
import org.elasticsearch.painless.lookup.def;
2626
import org.elasticsearch.painless.Globals;
2727
import org.elasticsearch.painless.Locals;
2828
import org.elasticsearch.painless.Location;

modules/lang-painless/src/main/java/org/elasticsearch/painless/node/ECapturingFunctionRef.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.elasticsearch.painless.AnalyzerCaster;
2323
import org.elasticsearch.painless.DefBootstrap;
2424
import org.elasticsearch.painless.lookup.PainlessLookup;
25-
import org.elasticsearch.painless.lookup.PainlessLookup.def;
25+
import org.elasticsearch.painless.lookup.def;
2626
import org.elasticsearch.painless.FunctionRef;
2727
import org.elasticsearch.painless.Globals;
2828
import org.elasticsearch.painless.Locals;

modules/lang-painless/src/main/java/org/elasticsearch/painless/node/EComp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.elasticsearch.painless.AnalyzerCaster;
2323
import org.elasticsearch.painless.DefBootstrap;
2424
import org.elasticsearch.painless.lookup.PainlessLookup;
25-
import org.elasticsearch.painless.lookup.PainlessLookup.def;
25+
import org.elasticsearch.painless.lookup.def;
2626
import org.elasticsearch.painless.Globals;
2727
import org.elasticsearch.painless.Locals;
2828
import org.elasticsearch.painless.Location;

0 commit comments

Comments
 (0)