All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ggp.base.util.ruleengine.Translator Maven / Gradle / Ivy

The newest version!
package org.ggp.base.util.ruleengine;

import java.util.List;
import java.util.Set;

import org.ggp.base.util.gdl.grammar.GdlSentence;
import org.ggp.base.util.gdl.grammar.GdlTerm;
import org.ggp.base.util.statemachine.Move;

import com.google.common.collect.Lists;

public interface Translator {
    public GdlTerm getGdlMove(M move);
    public M getNativeMove(S state, int roleIndex, GdlTerm move);

    public Set getGdlState(S state);
    public S getNativeState(Set state);

    default List getGdlMoves(List moves) {
        List results = Lists.newArrayListWithCapacity(moves.size());
        for (M move : moves) {
            results.add(getGdlMove(move));
        }
        return results;
    }
    default List getNativeMoves(S state, List moves) {
        List results = Lists.newArrayListWithCapacity(moves.size());
        for (int r = 0; r < moves.size(); r++) {
            GdlTerm move = moves.get(r);
            results.add(getNativeMove(state, r, move));
        }
        return results;
    }
    default List getNativeMovesFromMoves(S state, List moves) {
        List results = Lists.newArrayListWithCapacity(moves.size());
        for (int r = 0; r < moves.size(); r++) {
            Move move = moves.get(r);
            results.add(getNativeMove(state, r, move.getContents()));
        }
        return results;
    }
    default List getMoveObjects(List moves) {
        List results = Lists.newArrayListWithCapacity(moves.size());
        for (M move : moves) {
            results.add(new Move(getGdlMove(move)));
        }
        return results;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy