/// <summary> /// Serializes the given <paramref name="graph"/> into GraphML in the given <paramref name="writer"/>. /// </summary> /// <typeparam name="TVertex">Vertex type.</typeparam> /// <typeparam name="TEdge">Edge type.</typeparam> /// <typeparam name="TGraph">Graph type.</typeparam> /// <param name="graph">Graph instance to serialize.</param> /// <param name="writer">The XML writer.</param> /// <param name="vertexIdentity">Vertex identity method.</param> /// <param name="edgeIdentity">Edge identity method.</param> /// <exception cref="T:System.ArgumentNullException"><paramref name="graph"/> is <see langword="null"/>.</exception> /// <exception cref="T:System.ArgumentNullException"><paramref name="writer"/> is <see langword="null"/>.</exception> /// <exception cref="T:System.ArgumentNullException"><paramref name="vertexIdentity"/> is <see langword="null"/>.</exception> /// <exception cref="T:System.ArgumentNullException"><paramref name="edgeIdentity"/> is <see langword="null"/>.</exception> /// <exception cref="T:System.InvalidOperationException">Failure while writing elements to GraphML.</exception> /// <exception cref="T:System.NotSupportedException">Serializing value on property without getter, or with unsupported property type.</exception> public static void SerializeToGraphML <TVertex, TEdge, TGraph>( [NotNull] this TGraph graph, [NotNull] XmlWriter writer, [NotNull] VertexIdentity <TVertex> vertexIdentity, [NotNull] EdgeIdentity <TVertex, TEdge> edgeIdentity) where TEdge : IEdge <TVertex> where TGraph : IEdgeListGraph <TVertex, TEdge> { var serializer = new GraphMLSerializer <TVertex, TEdge, TGraph>(); serializer.Serialize(writer, graph, vertexIdentity, edgeIdentity); }
/// <summary> /// Serializes the given <paramref name="graph"/> into GraphML in the given <paramref name="writer"/>. /// </summary> /// <typeparam name="TVertex">Vertex type.</typeparam> /// <typeparam name="TEdge">Edge type.</typeparam> /// <typeparam name="TGraph">Graph type.</typeparam> /// <param name="graph">Graph instance to serialize.</param> /// <param name="writer">The XML writer.</param> /// <param name="vertexIdentities">Vertex identity method.</param> /// <param name="edgeIdentities">Edge identity method.</param> public static void SerializeToGraphML <TVertex, TEdge, TGraph>( this TGraph graph, XmlWriter writer, VertexIdentity <TVertex> vertexIdentities, EdgeIdentity <TVertex, TEdge> edgeIdentities) where TEdge : IEdge <TVertex> where TGraph : IEdgeListGraph <TVertex, TEdge> { var serializer = new GraphMLSerializer <TVertex, TEdge, TGraph>(); serializer.Serialize(writer, graph, vertexIdentities, edgeIdentities); }
public WriterWorker( [NotNull] GraphMLSerializer <TVertex, TEdge, TGraph> serializer, [NotNull] XmlWriter writer, [NotNull] TGraph graph, [NotNull] VertexIdentity <TVertex> vertexIdentities, [NotNull] EdgeIdentity <TVertex, TEdge> edgeIdentities) { Debug.Assert(serializer != null); Debug.Assert(writer != null); Debug.Assert(graph != null); Debug.Assert(vertexIdentities != null); Debug.Assert(edgeIdentities != null); _serializer = serializer; _writer = writer; _graph = graph; _vertexIdentities = vertexIdentities; _edgeIdentities = edgeIdentities; }
/// <summary> /// Serializes the given <paramref name="graph"/> into GraphML in the given <paramref name="writer"/>. /// </summary> /// <typeparam name="TVertex">Vertex type.</typeparam> /// <typeparam name="TEdge">Edge type.</typeparam> /// <typeparam name="TGraph">Graph type.</typeparam> /// <param name="graph">Graph instance to serialize.</param> /// <param name="writer">The XML writer.</param> /// <param name="vertexIdentities">Vertex identity method.</param> /// <param name="edgeIdentities">Edge identity method.</param> public static void SerializeToGraphML <TVertex, TEdge, TGraph>( [NotNull] this TGraph graph, [NotNull] XmlWriter writer, [NotNull] VertexIdentity <TVertex> vertexIdentities, [NotNull] EdgeIdentity <TVertex, TEdge> edgeIdentities) where TEdge : IEdge <TVertex> where TGraph : IEdgeListGraph <TVertex, TEdge> { if (graph == null) { throw new ArgumentNullException(nameof(graph)); } if (writer is null) { throw new ArgumentNullException(nameof(writer)); } var serializer = new GraphMLSerializer <TVertex, TEdge, TGraph>(); serializer.Serialize(writer, graph, vertexIdentities, edgeIdentities); }