package org.overture.interpreter.solver;
import org.overture.ast.lex.Dialect;
import org.overture.typechecker.assistant.ITypeCheckerAssistantFactory;
import org.overture.typechecker.assistant.TypeCheckerAssistantFactory;
public class SolverFactory
{
public static IConstraintSolver getSolver(Dialect dialect)
{
try
{
Class<?> delegateClass = dialect.getClass().getClassLoader().loadClass("org.overture.modelcheckers.probsolver.ProbSolverIntegration");
if (IConstraintSolver.class.isAssignableFrom(delegateClass))
{
return (IConstraintSolver) delegateClass.getConstructor(ITypeCheckerAssistantFactory.class).newInstance(new TypeCheckerAssistantFactory());
}
} catch (Exception e)
{
// ignore
}
return null;
}
}