示例#1
0
        /// <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);
        }
示例#3
0
            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);
        }