public static void toJSON(OutputWriter jsonWriter, JobInstance jobInstance) { jsonWriter.add("id", jobInstance.getId()); jsonWriter.add("name", jobInstance.getName()); if (jobInstance.getState() != null) { jsonWriter.add("state", jobInstance.getState().toString()); } if (jobInstance.getResult() != null) { jsonWriter.add("result", jobInstance.getResult().toString()); } if (jobInstance.getScheduledDate() != null) { jsonWriter.add("scheduled_date", jobInstance.getScheduledDate().getTime()); } jsonWriter.add("rerun", jobInstance.isRerun()); if (jobInstance.getOriginalJobId() == null) { jsonWriter.add("original_job_id", (String) null); } else { jsonWriter.add("original_job_id", jobInstance.getOriginalJobId()); } jsonWriter.addWithDefaultIfBlank("agent_uuid", jobInstance.getAgentUuid(), (String) null); jsonWriter.add("pipeline_name", (String) null); jsonWriter.add("pipeline_counter", (String) null); jsonWriter.add("stage_name", (String) null); jsonWriter.add("stage_counter", (String) null); jsonWriter.addChildList("job_state_transitions", jobStateTransitionsWriter -> jobInstance.getTransitions().forEach( jobStateTransition -> jobStateTransitionsWriter.addChild( jobStateTransitionWriter -> JobStateTransitionRepresenter.toJSON(jobStateTransitionWriter, jobStateTransition)))); } }