package at.oefai.aaa.agent.jam;

import java.io.Serializable;

import at.oefai.aaa.agent.jam.types.Binding;

/**
 * A JAM primitive action modifying the JAM world model.
 * @author Marc Huber
 * @author Jaeho Lee
 */
abstract class WorldModelAction extends AbstractAction implements Serializable {

    protected Relation relation;
    protected WorldModelTable worldModel;

    /** Constructor w/ World Model relation and interpreter (to simplify access to the agent's World Model) as arguments. */
    WorldModelAction(final Relation pRelation, final WorldModelTable pWorldModel) {
        this.relation = pRelation;
        this.worldModel = pWorldModel;
    }

    // Member functions

    /** Perform the necessary world model function. */
    public Result execute(final Binding b, final Goal currentGoal) {
        return Result.CANNOT_EXECUTE;
    }

    public String getName() {
        return this.relation.getName();
    }

    public boolean isExecutableAction() {
        return false;
    }

    public String formattedString(final Binding b) {
        return "";
    }
}

