public Configuration parseConfiguration()

in taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/defaultdispatchstack/RetryParser.java [74:106]


	public Configuration parseConfiguration(T2FlowParser t2FlowParser,
			ConfigBean configBean, ParserState parserState)
			throws ReaderException {
		RetryConfig config = unmarshallConfig(t2FlowParser, configBean,
				"xstream", RetryConfig.class);

		Configuration c = new Configuration();
		c.setType(scufl2Uri.resolve("#Config"));

		ObjectNode json = (ObjectNode) c.getJson();

		BigInteger maxRetries = config.getMaxRetries();
		if (maxRetries != null
				&& (maxRetries.longValue() != MAX_RETRIES || maxRetries
						.longValue() < 0))
			json.put("maxRetries", maxRetries.longValue());

		if (maxRetries != null && maxRetries.longValue() != 0) {
			// Neither of these makes sense if retries are disabled

			if (config.getInitialDelay() != INITIAL_DELAY
					&& config.getInitialDelay() > -1)
				json.put("initialDelay", config.getInitialDelay());

			if (config.getMaxDelay() != MAX_DELAY && config.getMaxDelay() > -1)
				json.put("maxDelay", config.getMaxDelay());

			double delta = Math.abs(config.getBackoffFactor() - BACKOFF_FACTOR);
			if (config.getBackoffFactor() > 0 && delta > 1e-14)
				json.put("backoffFactor", config.getBackoffFactor());
		}
		return c;
	}