Skip to content

Commit f50e4e5

Browse files
committed
Revert useless node transform changes.
1 parent 1809526 commit f50e4e5

File tree

5 files changed

+1
-1126
lines changed

5 files changed

+1
-1126
lines changed

x-pack/plugin/esql-core/src/main/java/org/elasticsearch/xpack/esql/core/tree/Node.java

Lines changed: 1 addition & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
*/
77
package org.elasticsearch.xpack.esql.core.tree;
88

9-
import org.elasticsearch.action.ActionListener;
10-
import org.elasticsearch.action.support.CountDownActionListener;
119
import org.elasticsearch.common.io.stream.NamedWriteable;
1210
import org.elasticsearch.xpack.esql.core.QlIllegalArgumentException;
1311

@@ -16,8 +14,6 @@
1614
import java.util.Iterator;
1715
import java.util.List;
1816
import java.util.Objects;
19-
import java.util.concurrent.atomic.AtomicReference;
20-
import java.util.function.BiConsumer;
2117
import java.util.function.Consumer;
2218
import java.util.function.Function;
2319
import java.util.function.Predicate;
@@ -191,45 +187,16 @@ public T transformDown(Function<? super T, ? extends T> rule) {
191187
return node.transformChildren(child -> child.transformDown(rule));
192188
}
193189

194-
@SuppressWarnings("unchecked")
195-
public void transformDown(BiConsumer<T, ActionListener<T>> rule, ActionListener<T> listener) {
196-
// First apply the rule to the current node (top-down)
197-
rule.accept((T) this, listener.delegateFailureAndWrap((l, transformedNode) -> {
198-
// Then recursively transform the children with the same rule
199-
transformedNode.transformChildren((child, childListener) -> child.transformDown(rule, childListener), l);
200-
}));
201-
}
202-
203190
@SuppressWarnings("unchecked")
204191
public <E extends T> T transformDown(Class<E> typeToken, Function<E, ? extends T> rule) {
205192
return transformDown((t) -> (typeToken.isInstance(t) ? rule.apply((E) t) : t));
206193
}
207194

208-
@SuppressWarnings("unchecked")
209-
public <E extends T> void transformDown(Class<E> typeToken, BiConsumer<E, ActionListener<T>> rule, ActionListener<T> listener) {
210-
transformDown(typeToken::isInstance, rule, listener);
211-
}
212-
213195
@SuppressWarnings("unchecked")
214196
public <E extends T> T transformDown(Predicate<Node<?>> nodePredicate, Function<E, ? extends T> rule) {
215197
return transformDown((t) -> (nodePredicate.test(t) ? rule.apply((E) t) : t));
216198
}
217199

218-
@SuppressWarnings("unchecked")
219-
public <E extends T> void transformDown(
220-
Predicate<Node<?>> nodePredicate,
221-
BiConsumer<E, ActionListener<T>> rule,
222-
ActionListener<T> listener
223-
) {
224-
transformDown((T node, ActionListener<T> l) -> {
225-
if (nodePredicate.test(node)) {
226-
rule.accept((E) node, l);
227-
} else {
228-
l.onResponse(node);
229-
}
230-
}, listener);
231-
}
232-
233200
@SuppressWarnings("unchecked")
234201
public T transformUp(Function<? super T, ? extends T> rule) {
235202
T transformed = transformChildren(child -> child.transformUp(rule));
@@ -238,48 +205,15 @@ public T transformUp(Function<? super T, ? extends T> rule) {
238205
}
239206

240207
@SuppressWarnings("unchecked")
241-
public void transformUp(BiConsumer<T, ActionListener<T>> rule, ActionListener<T> listener) {
242-
// First, recursively transform the children (depth-first, bottom-up) using the same async rule
243-
transformChildren(
244-
// traversal operation applied to each child
245-
(child, childListener) -> child.transformUp(rule, childListener),
246-
// After all children are transformed, apply the rule to the (possibly) new current node
247-
listener.delegateFailureAndWrap((l, transformedChildrenNode) -> {
248-
T node = transformedChildrenNode.equals(this) ? (T) this : transformedChildrenNode;
249-
rule.accept(node, l);
250-
})
251-
);
252-
}
253-
254208
public <E extends T> T transformUp(Class<E> typeToken, Function<E, ? extends T> rule) {
255-
return transformUp(typeToken::isInstance, rule);
256-
}
257-
258-
public <E extends T> void transformUp(Class<E> typeToken, BiConsumer<E, ActionListener<T>> rule, ActionListener<T> listener) {
259-
transformUp(typeToken::isInstance, rule, listener);
209+
return transformUp((t) -> (typeToken.isInstance(t) ? rule.apply((E) t) : t));
260210
}
261211

262212
@SuppressWarnings("unchecked")
263213
public <E extends T> T transformUp(Predicate<Node<?>> nodePredicate, Function<E, ? extends T> rule) {
264214
return transformUp((t) -> (nodePredicate.test(t) ? rule.apply((E) t) : t));
265215
}
266216

267-
@SuppressWarnings("unchecked")
268-
public <E extends T> void transformUp(
269-
Predicate<Node<?>> nodePredicate,
270-
BiConsumer<E, ActionListener<T>> rule,
271-
ActionListener<T> listener
272-
) {
273-
transformUp((T node, ActionListener<T> l) -> {
274-
if (nodePredicate.test(node)) {
275-
E typedNode = (E) node;
276-
rule.accept((E) node, l);
277-
} else {
278-
l.onResponse(node);
279-
}
280-
}, listener);
281-
}
282-
283217
@SuppressWarnings("unchecked")
284218
protected <R extends Function<? super T, ? extends T>> T transformChildren(Function<T, ? extends T> traversalOperation) {
285219
boolean childrenChanged = false;
@@ -304,35 +238,6 @@ public <E extends T> void transformUp(
304238
return (childrenChanged ? replaceChildrenSameSize(transformedChildren) : (T) this);
305239
}
306240

307-
@SuppressWarnings("unchecked")
308-
protected void transformChildren(BiConsumer<? super T, ActionListener<T>> traversalOperation, ActionListener<T> listener) {
309-
if (children.isEmpty()) {
310-
listener.onResponse((T) this);
311-
return;
312-
}
313-
314-
final AtomicReference<List<T>> transformedChildren = new AtomicReference<>(null);
315-
316-
CountDownActionListener countDownListener = new CountDownActionListener(
317-
children.size(),
318-
listener.delegateFailureIgnoreResponseAndWrap((l) -> {
319-
l.onResponse(transformedChildren.get() != null ? replaceChildren(transformedChildren.get()) : (T) this);
320-
})
321-
);
322-
323-
for (int i = 0, s = children.size(); i < s; i++) {
324-
T child = children.get(i);
325-
final int childId = i;
326-
traversalOperation.accept(child, countDownListener.map(next -> {
327-
if (child.equals(next) == false) {
328-
transformedChildren.compareAndSet(null, new ArrayList<>(children));
329-
transformedChildren.get().set(childId, next);
330-
}
331-
return null;
332-
}));
333-
}
334-
}
335-
336241
public final T replaceChildrenSameSize(List<T> newChildren) {
337242
if (newChildren.size() != children.size()) {
338243
throw new QlIllegalArgumentException(
@@ -352,38 +257,14 @@ public <E> T transformPropertiesOnly(Class<E> typeToken, Function<? super E, ? e
352257
return transformNodeProps(typeToken, rule);
353258
}
354259

355-
public <E> void transformPropertiesOnly(
356-
Class<E> typeToken,
357-
BiConsumer<? super E, ActionListener<? super E>> rule,
358-
ActionListener<T> listener
359-
) {
360-
transformNodeProps(typeToken, rule, listener);
361-
}
362-
363260
public <E> T transformPropertiesDown(Class<E> typeToken, Function<? super E, ? extends E> rule) {
364261
return transformDown(t -> t.transformNodeProps(typeToken, rule));
365262
}
366263

367-
public <E> void transformPropertiesDown(
368-
Class<E> typeToken,
369-
BiConsumer<? super E, ActionListener<? super E>> rule,
370-
ActionListener<T> listener
371-
) {
372-
transformDown((t, l) -> t.transformNodeProps(typeToken, rule, l), listener);
373-
}
374-
375264
public <E> T transformPropertiesUp(Class<E> typeToken, Function<? super E, ? extends E> rule) {
376265
return transformUp(t -> t.transformNodeProps(typeToken, rule));
377266
}
378267

379-
public <E> void transformPropertiesUp(
380-
Class<E> typeToken,
381-
BiConsumer<? super E, ActionListener<? super E>> rule,
382-
ActionListener<T> listener
383-
) {
384-
transformUp((t, l) -> t.transformNodeProps(typeToken, rule, l), listener);
385-
}
386-
387268
/**
388269
* Transform this node's properties.
389270
* <p>
@@ -396,14 +277,6 @@ protected final <E> T transformNodeProps(Class<E> typeToken, Function<? super E,
396277
return info().transform(rule, typeToken);
397278
}
398279

399-
protected final <E> void transformNodeProps(
400-
Class<E> typeToken,
401-
BiConsumer<? super E, ActionListener<? super E>> rule,
402-
ActionListener<T> listener
403-
) {
404-
info().transform(rule, typeToken, listener);
405-
}
406-
407280
/**
408281
* Return the information about this node.
409282
* <p>

0 commit comments

Comments
 (0)