All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xlrit.gears.runner.run.Config Maven / Gradle / Ivy

There is a newer version: 1.17.1
Show newest version
package com.xlrit.gears.runner.run;

import com.fasterxml.jackson.databind.JsonNode;

public class Config {
	public String projectDir = null;
	public String generateRunnerTarget = null;
	public String endpoint = "http://localhost:8080/graphql";
	public String scenarioDir = "scenarios";
	public String dataDir = "data";
	public String runnerTarget = "graphql";
	public int waitMillis = 200;
	public int timeoutMillis = 4000;
	public boolean dryrun = false;
	public boolean headless = false;

	public void readJson(JsonNode config) {
		JsonNode options = config.get("runnerOptions");
		if (options != null) {
			endpoint = orElseString(options.get("endpoint"), endpoint);
			timeoutMillis = orElseInt(options.get("timeoutMillis"), timeoutMillis);
			waitMillis = orElseInt(options.get("waitMillis"), waitMillis);
			runnerTarget = orElseString(options.get("target"), runnerTarget);
		}
		JsonNode dirs = config.get("dirs");
		if (dirs != null) {
			scenarioDir = orElseString(dirs.get("scenarios"), scenarioDir);
			dataDir = orElseString(dirs.get("data"), dataDir);
		}
		JsonNode generation = config.get("generate");
		if (generation != null) {
			projectDir = orElseString(generation.get("project"), projectDir);
			generateRunnerTarget = orElseString(generation.get("target"), generateRunnerTarget);
		}
	}

	private String orElseString(JsonNode possiblyNull, String value) {
		if (possiblyNull == null) return value;
		else return possiblyNull.asText();
	}

	private int orElseInt(JsonNode possiblyNull, int value) {
		if (possiblyNull == null) return value;
		else return possiblyNull.asInt();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy