internal static DataFlow DeserializeDataFlow(JsonElement element) { if (element.TryGetProperty("type", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "Flowlet": return(Flowlet.DeserializeFlowlet(element)); case "MappingDataFlow": return(MappingDataFlow.DeserializeMappingDataFlow(element)); } } string type = default; Optional <string> description = default; Optional <IList <object> > annotations = default; Optional <DataFlowFolder> folder = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("description")) { description = property.Value.GetString(); continue; } if (property.NameEquals("annotations")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <object> array = new List <object>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(item.GetObject()); } annotations = array; continue; } if (property.NameEquals("folder")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } folder = DataFlowFolder.DeserializeDataFlowFolder(property.Value); continue; } } return(new DataFlow(type, description.Value, Optional.ToList(annotations), folder.Value)); }
internal static DataFlow DeserializeDataFlow(JsonElement element) { if (element.TryGetProperty("type", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "MappingDataFlow": return(MappingDataFlow.DeserializeMappingDataFlow(element)); } } string type = default; string description = default; IList <object> annotations = default; DataFlowFolder folder = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("description")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } description = property.Value.GetString(); continue; } if (property.NameEquals("annotations")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } List <object> array = new List <object>(); foreach (var item in property.Value.EnumerateArray()) { if (item.ValueKind == JsonValueKind.Null) { array.Add(null); } else { array.Add(item.GetObject()); } } annotations = array; continue; } if (property.NameEquals("folder")) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } folder = DataFlowFolder.DeserializeDataFlowFolder(property.Value); continue; } } return(new DataFlow(type, description, annotations, folder)); }