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

javax.constraints.impl.search.GoalThis Maven / Gradle / Ivy

//================================================================
// J A V A  C O M M U N I T Y  P R O C E S S
// 
// J S R  3 3 1 
// 
// CONSTRAINER-BASED REFERENCE IMPLEMENTATION
//
// Copyright (c) Cork Constraint Computation Centre, 2010
// University College Cork, Cork, Ireland, www.4c.ucc.ie
// Constrainer is copyrighted by Exigen Group, USA.
// 
//================================================================
package javax.constraints.impl.search;

import javax.constraints.Problem;

import com.exigen.ie.constrainer.Constrainer;
import com.exigen.ie.constrainer.Failure;
import com.exigen.ie.constrainer.Goal;

/**
 * This is a native Constrainer's goal created based on a high-level Goal
 * passed to it as a parameter. GoalThis simple execute the method "execute"
 * of the high-level goal. It is used to implement high-level goals using a low-level
 * solver.
 *
 */

public class GoalThis extends com.exigen.ie.constrainer.GoalImpl {
	javax.constraints.impl.search.goal.Goal goal;

	public GoalThis(Constrainer c, javax.constraints.impl.search.goal.Goal goal) {
		super(c,goal.getName());
		this.goal = goal;
	}

	public Goal execute() throws Failure {
		//goal.trace();
		Problem problem = goal.getProblem();
		try {
			javax.constraints.impl.search.goal.Goal newGoal = goal.execute();
			if (newGoal == null)
				return null;
			else
				return (Goal)newGoal.getImpl();
		} catch (Failure f) {
			//problem.debug("Failure during execution of goal '" + goal.getName()+"'");
			throw new Failure();
		}
		catch (Exception e) {
			String msg = "Unexpected exception during execution of goal '" + goal.getName()+"'";
			problem.log(msg);
			problem.log(e.toString());
			e.printStackTrace();
			throw new RuntimeException(msg);
		}

	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy