aboutsummaryrefslogtreecommitdiffstats
path: root/indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/ExpressionVisitor.java
blob: 5f7183d60f6c1af1d390ee7554e9ea4f183c1b1f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.indexinglanguage;

import com.yahoo.vespa.indexinglanguage.expressions.Expression;

/**
 * @author Simon Thoresen Hult
 */
public abstract class ExpressionVisitor {

    private final MyConverter converter = new MyConverter();

    public void visit(Expression exp) {
        converter.convert(exp);
    }

    protected abstract void doVisit(Expression exp);

    private class MyConverter extends ExpressionConverter {

        @Override
        protected boolean shouldConvert(Expression exp) {
            doVisit(exp);
            return false;
        }

        @Override
        protected Expression doConvert(Expression exp) {
            throw new AssertionError();
        }

    }

}