view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultEvaluator.java @ 0:44465893e8b8

first Commit
author Kazuma
date Wed, 30 Nov 2016 01:47:55 +0900
parents
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.jungle.traverser;

import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath;
import jp.ac.u_ryukyu.ie.cr.jungle.util.Pair;
import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;

public class DefaultEvaluator implements Evaluator {
    private final NodePath path;

    public DefaultEvaluator(NodePath _path) {
        path = _path;
    }

    @Override
    public Evaluation evaluate(TreeNode _current, int _pos) {
        Pair<Integer, NodePath> pop = path.pop();
        int head = pop.left();

        if (path.size() == 1) {
            if (head == _pos) {
                return new DefaultEvaluation(Result.GOAL, null);
            }
        }

        DefaultEvaluator nextEvaluator;
        Result result;
        if (head == _pos) {
            result = Result.ACCEPT;
            nextEvaluator = new DefaultEvaluator(pop.right());
        } else {
            result = Result.CONTINUE;
            nextEvaluator = null;
        }


        return new DefaultEvaluation(result, nextEvaluator);
    }
}