package org.ggp.base.util.statemachine.implementation.prover.result;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.ggp.base.util.gdl.grammar.GdlConstant;
import org.ggp.base.util.gdl.grammar.GdlPool;
import org.ggp.base.util.gdl.grammar.GdlSentence;
import org.ggp.base.util.gdl.grammar.GdlTerm;
import org.ggp.base.util.statemachine.MachineState;
import org.ggp.base.util.statemachine.Move;
import org.ggp.base.util.statemachine.Role;
public final class ProverResultParser {
public List<Move> toMoves(Set<GdlSentence> results)
{
List<Move> moves = new ArrayList<Move>();
for (GdlSentence result : results)
{
moves.add(new Move(result.get(1)));
}
return moves;
}
public List<Role> toRoles(List<GdlSentence> results)
{
List<Role> roles = new ArrayList<Role>();
for (GdlSentence result : results)
{
GdlConstant name = (GdlConstant) result.get(0);
roles.add(new Role(name));
}
return roles;
}
public MachineState toState(Set<GdlSentence> results)
{
Set<GdlSentence> trues = new HashSet<GdlSentence>();
for (GdlSentence result : results)
{
trues.add(GdlPool.getRelation(GdlPool.TRUE, new GdlTerm[] { result.get(0) }));
}
return new MachineState(trues);
}
}