public VisitReport visit()

in taverna-wsdl-activity/src/main/java/org/apache/taverna/activities/wsdl/WSDLActivityHealthChecker.java [61:123]


	public VisitReport visit(Object o, List<Object> ancestors) {
		List<VisitReport> reports = new ArrayList<VisitReport>();
		activity = (Activity<?>) o;
		String endpoint = null;

		WSDLParser parser;
		try {
			JsonNode configuration = null;
			if (activity instanceof WSDLActivity) {
				configuration = ((WSDLActivity)activity).getConfiguration();
			} else if (activity instanceof DisabledActivity) {
				configuration = (JsonNode) ((DisabledActivity) activity).getActivityConfiguration();
			}
			endpoint = configuration.get("operation").get("wsdl").asText();
			VisitReport wsdlEndpointReport = RemoteHealthChecker.contactEndpoint(activity, endpoint);
			reports.add(wsdlEndpointReport);
			if (!wsdlEndpointReport.getStatus().equals(Status.SEVERE)) {
			    parser = new WSDLParser(endpoint);

			    String operationName = configuration.get("operation").get("name").asText();
			    try {
                reports.add(testStyleAndUse(endpoint,
							    parser,
							    operationName));
				reports.add(testEndpoint(parser, operationName));
			    } catch (UnknownOperationException e) {
				VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity,
							 "Operation not found", HealthCheck.UNKNOWN_OPERATION,
							 Status.SEVERE);
				vr.setProperty("operationName", operationName);
				vr.setProperty("endpoint", endpoint);
				reports.add(vr);
			    }
			}

		} catch (ParserConfigurationException e) {
			VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
			vr.setProperty("exception", e);
			vr.setProperty("endpoint", endpoint);
			reports.add(vr);
		} catch (WSDLException e) {
			VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
			vr.setProperty("exception", e);
			vr.setProperty("endpoint", endpoint);
			reports.add(vr);
		} catch (IOException e) {
			VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Read problem", HealthCheck.IO_PROBLEM, Status.SEVERE);
			vr.setProperty("exception", e);
			vr.setProperty("endpoint", endpoint);
			reports.add(vr);
		} catch (SAXException e) {
			VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
			vr.setProperty("exception", e);
			vr.setProperty("endpoint", endpoint);
			reports.add(vr);
		}

		Status status = VisitReport.getWorstStatus(reports);
		VisitReport report = new VisitReport(HealthCheck.getInstance(), activity, "WSDL Activity report", HealthCheck.NO_PROBLEM,
				status, reports);

		return report;
	}