view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultEvaluator.java @ 263:cac88cf813f1 Implementation_of_communication

tmp
author tatsuki
date Tue, 13 Dec 2016 00:00:18 +0900
parents 7da9056e9357
children b3a04bc21b23
line wrap: on
line source

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

import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.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);
    }
}