public static void toJSON(OutputWriter jsonOutputWriter, MaterialRevision model) { jsonOutputWriter .add("material_type", model.getMaterialType()) .add("material_name", model.getMaterialName()) .add("changed", model.isChanged()) .addChildList("modifications", listWriter -> model.getModifications().forEach(modification -> listWriter.addChild(childWriter -> { if (model.getMaterial() instanceof DependencyMaterial) { PipelineDependencyModificationRepresenter.toJSON(jsonOutputWriter, modification, (DependencyMaterialRevision) model.getRevision()); } else { ModificationRepresenter.toJSON(jsonOutputWriter, modification, model.getMaterial()); } }))); } }