public static void toJSON(OutputWriter jsonWriter, ServerMaintenanceMode serverMaintenanceMode, boolean hasNoRunningSystems, Collection<MaterialPerformingMDU> runningMDUs, List<JobInstance> buildingJobs, List<JobInstance> scheduledJobs) {
jsonWriter
.addLinks(linksWriter -> linksWriter.addLink("self", Routes.MaintenanceMode.BASE + Routes.MaintenanceMode.INFO)
.addAbsoluteLink("doc", Routes.MaintenanceMode.INFO_DOC));
jsonWriter.add("is_maintenance_mode", serverMaintenanceMode.isMaintenanceMode());
jsonWriter.addChild("metadata", metadataChildWriter -> {
metadataChildWriter.add("updated_by", serverMaintenanceMode.updatedBy());
metadataChildWriter.add("updated_on", serverMaintenanceMode.updatedOn());
});
if (serverMaintenanceMode.isMaintenanceMode()) {
jsonWriter.addChild("attributes", attributesWriter -> {
attributesWriter.add("has_running_systems", !hasNoRunningSystems);
attributesWriter.addChild("running_systems", runningSystemsChildWriter -> {
runningSystemsChildWriter.addChildList("material_update_in_progress", runningMDUsToJSON(runningMDUs));
runningSystemsChildWriter.addChildList("building_jobs", runningJobsToJSON(buildingJobs));
runningSystemsChildWriter.addChildList("scheduled_jobs", runningJobsToJSON(scheduledJobs));
});
});
}
}