class ExpressionEvaluatorFactory {

    public ExpressionEvaluator getOrCreate(FactMappingValue factMappingValue) {
        if (Type.DMN.equals(type)) {
            return getOrCreateDMNExpressionEvaluator();
        }

        String rawValue = (String) factMappingValue.getRawValue();

        if (isAnMVELExpression(rawValue)) {
            return getOrCreateMVELExpressionEvaluator();
        } else {
            return getOrCreateBaseExpressionEvaluator();
        }
    }

    private  ExpressionEvaluatorFactory(ClassLoader classLoader, Type type);

}