package eu.dnetlib.cnr.contract;

import eu.dnetlib.contract.cp.CheckPointEvaluationException;
import eu.dnetlib.contract.cp.ICheckPoint;
import eu.dnetlib.contract.cp.eval.module.IEvaluatorModule;
import eu.dnetlib.contract.event.IContractEvent;
import eu.dnetlib.contract.node.EvaluationResult;
import eu.dnetlib.contract.node.EvaluationResult.Status;

public class TestEvaluatorModule implements	IEvaluatorModule<IContractEvent> {
	public EvaluationResult evaluate(Object inspObj, IContractEvent context, ICheckPoint<IContractEvent> checkPoint)
	throws CheckPointEvaluationException {

		if (inspObj!=null && inspObj instanceof String) {
			String s = (String) inspObj;
			
			if (s.startsWith("XXXX") && s.endsWith("YYYY")) {
				return new EvaluationResult(Status.OK, checkPoint, context);
			} else {
				String message = "Method returned false: "  + inspObj;
				return new EvaluationResult(Status.FAIL, checkPoint, context, message);
			}
		} else {
			String message = "Invalid and unsupported object value: " + inspObj;
			return new EvaluationResult(Status.FAIL, checkPoint, context, message);
		}
	}

}

