public static void toJSON(OutputWriter outputWriter, EnvironmentConfig environmentViewModel) { String envName = environmentViewModel.name().toString(); EnvironmentPipelinesConfig pipelines = environmentViewModel.getPipelines(); EnvironmentAgentsConfig agentsViewModel = environmentViewModel.getAgents(); EnvironmentVariablesConfig environmentVariableConfigs = environmentViewModel.getVariables(); outputWriter .addLinks(linksWriter -> linksWriter .addLink("self", Routes.Environments.name(envName)) .addAbsoluteLink("doc", Routes.Environments.DOC) .addLink("find", Routes.Environments.find())) .add("name", envName) .addChildList("agents", agentListWriter -> agentsViewModel.forEach(agent -> agentListWriter.addChild(propertyWriter -> AgentRepresenter.toJSON(propertyWriter, agent)) ) ) .addChildList("pipelines", listWriter -> pipelines.forEach(pipelineConfig -> listWriter.addChild(propertyWriter -> PipelineRepresenter.toJSON(propertyWriter, pipelineConfig)))) .addChildList("environment_variables", environmentListWriter -> environmentVariableConfigs.forEach(environmentVariable -> environmentListWriter.addChild(propertyWriter -> EnvironmentVariableRepresenter.toJSON(propertyWriter, environmentVariable)) ) ); }