blob: cbca70aa0af73376c35dc81a9659295a5c80f4ab [file] [log] [blame]
package net.sf.taverna.t2.activities.rest;
import java.util.ArrayList;
import java.util.List;
import net.sf.taverna.t2.visit.VisitReport;
import net.sf.taverna.t2.visit.VisitReport.Status;
import net.sf.taverna.t2.workflowmodel.health.HealthCheck;
import net.sf.taverna.t2.workflowmodel.health.HealthChecker;
/**
* A {@link HealthChecker} for a {@link RESTActivity}.
*
* @author Sergejs Aleksejevs
*/
public class RESTActivityHealthChecker implements HealthChecker<RESTActivity> {
@Override
public boolean canVisit(Object subject) {
return (subject instanceof RESTActivity);
}
@Override
public VisitReport visit(RESTActivity activity, List<Object> ancestors) {
// collection of validation reports that this health checker will create
List<VisitReport> reports = new ArrayList<VisitReport>();
RESTActivityConfigurationBean configBean = activity.getConfigurationBean();
if (configBean.isValid()) {
reports.add(new VisitReport(RESTActivityHealthCheck.getInstance(), activity,
"REST Activity is configured correctly",
RESTActivityHealthCheck.CORRECTLY_CONFIGURED, Status.OK));
} else {
reports.add(new VisitReport(RESTActivityHealthCheck.getInstance(), activity,
"REST Activity - bad configuration",
RESTActivityHealthCheck.GENERAL_CONFIG_PROBLEM, Status.SEVERE));
}
// (possibly other types of reports could be added later)
// collection all reports together
Status worstStatus = VisitReport.getWorstStatus(reports);
VisitReport report = new VisitReport(RESTActivityHealthCheck.getInstance(), activity,
"REST Activity Report", HealthCheck.NO_PROBLEM, worstStatus, reports);
return report;
}
/**
* Health check for the REST activity only involves
* verifying details in the configuration bean -
* that is quick.
*/
@Override
public boolean isTimeConsuming() {
return false;
}
}