/// <summary> /// Reads no data from serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is serializing</exception> public override void ReadGraphData(IGraphSerializationInfo info) { base.ReadGraphData(info); Object o = info["name"]; this.name = o.ToString(); }
/// <summary> /// Reads no data from serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is serializing</exception> public virtual void ReadGraphData(IGraphSerializationInfo info) { if (info == null) { throw new ArgumentNullException("info"); } if (info.IsSerializing) { throw new ArgumentException("serializing"); } }
/// <summary> /// Adds nothing to serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is not serializing</exception> public override void WriteGraphData(IGraphSerializationInfo info) { if (info==null) throw new ArgumentNullException("info"); if (!info.IsSerializing) throw new ArgumentException("not serializing"); base.WriteGraphData(info); foreach(DictionaryEntry de in this.entries) { info.Add(de.Key.ToString(), de.Value.ToString()); } }
/// <summary> /// Reads no data from serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is serializing</exception> public override void ReadGraphData(IGraphSerializationInfo info) { if (info==null) throw new ArgumentNullException("info"); if (info.IsSerializing) throw new ArgumentException("serializing"); base.ReadGraphData(info); foreach(DictionaryEntry de in info) { this.entries[de.Key.ToString()]=de.Value.ToString(); } }
/// <summary> /// Serializes informations to the <see cref="IGraphSerializationInfo"/> instance. /// </summary> /// <param name="info">serialization device</param> /// <exception cref="ArgumentNullException">info is a null reference</exception> public override void WriteGraphData(IGraphSerializationInfo info) { if (info == null) { throw new ArgumentNullException("info"); } base.WriteGraphData(info); if (!HasInvoker) { return; } info.Add("name", this.Invoker.Name); info.Add("test", this.Invoker.Generator.IsTest); }
/// <summary> /// Reads no data from serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is serializing</exception> public override void ReadGraphData(IGraphSerializationInfo info) { if (info == null) { throw new ArgumentNullException("info"); } if (info.IsSerializing) { throw new ArgumentException("serializing"); } base.ReadGraphData(info); foreach (DictionaryEntry de in info) { this.entries[de.Key.ToString()] = de.Value.ToString(); } }
/// <summary> /// Adds nothing to serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is not serializing</exception> public override void WriteGraphData(IGraphSerializationInfo info) { if (info == null) { throw new ArgumentNullException("info"); } if (!info.IsSerializing) { throw new ArgumentException("not serializing"); } base.WriteGraphData(info); foreach (DictionaryEntry de in this.entries) { info.Add(de.Key.ToString(), de.Value.ToString()); } }
private DataType[] ToDatas(IGraphSerializationInfo info) { DataType[] dts = new DataType[info.Count]; int i = 0; foreach (DictionaryEntry de in info) { dts[i] = new DataType(); dts[i].Key = de.Key.ToString(); if (de.Value != null) { dts[i].Text.AddString(de.Value.ToString()); } ++i; } return(dts); }
/// <summary> /// Reads graph data and creates new graph instance /// </summary> /// <param name="reader">xml reader opened on graph data</param> /// <returns>created graph instance</returns> protected override ISerializableVertexAndEdgeListGraph ReadGraphElem(XmlReader reader) { MoveToElement(reader, "gxl"); MoveToElement(reader, "graph"); // get directed state bool directed = true; if (MoveToAttribute(reader, "edgemode", false)) { if (reader.Value != "directed") { directed = false; } } IGraphSerializationInfo info = ReadInfo(reader); // getting types... if (this.GraphType == null) { this.GraphType = Type.GetType(info["graph-type"].ToString(), true); } if (this.VertexProviderType == null) { this.VertexProviderType = Type.GetType(info["vertex-provider-type"].ToString(), true); } if (this.EdgeProviderType == null) { this.EdgeProviderType = Type.GetType(info["edge-provider-type"].ToString(), true); } bool allowParallelEdges = bool.Parse(info["allow-parallel-edges"].ToString()); ISerializableVertexAndEdgeListGraph g = CreateGraph( this.GraphType, this.VertexProviderType, this.EdgeProviderType, directed, allowParallelEdges ); return(g); }
/// <summary> /// Writes custom info to GraphMl /// </summary> /// <param name="writer">xml writer</param> /// <param name="info">custom data</param> protected void WriteInfo( XmlWriter writer, IGraphSerializationInfo info) { if (info.Count == 0) { return; } foreach (DictionaryEntry de in info) { writer.WriteStartElement("attr"); writer.WriteAttributeString("name", (string)de.Key); writer.WriteStartElement(de.Value.GetType().ToString()); writer.WriteString(de.Value.ToString()); writer.WriteEndElement(); writer.WriteEndElement(); } }
/// <summary> /// Writes custom info to GraphMl /// </summary> /// <param name="writer">xml writer</param> /// <param name="info">custom data</param> protected void WriteInfo( XmlWriter writer, IGraphSerializationInfo info) { if (info.Count == 0) return; foreach(DictionaryEntry de in info) { writer.WriteStartElement("attr"); writer.WriteAttributeString("name",(string)de.Key); writer.WriteStartElement(de.Value.GetType().ToString()); writer.WriteString(de.Value.ToString()); writer.WriteEndElement(); writer.WriteEndElement(); } }
/// <summary> /// Reads no data from serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is serializing</exception> public virtual void ReadGraphData(IGraphSerializationInfo info) { if (info==null) throw new ArgumentNullException("info"); if (info.IsSerializing) throw new ArgumentException("serializing"); }
/// <summary> /// Adds nothing to serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is not serializing</exception> public override void WriteGraphData(IGraphSerializationInfo info) { base.WriteGraphData(info); info.Add("name",Name); }
/// <summary> /// Serializes informations to the <see cref="IGraphSerializationInfo"/> instance. /// </summary> /// <param name="info">serialization device</param> /// <exception cref="ArgumentNullException">info is a null reference</exception> public override void WriteGraphData(IGraphSerializationInfo info) { if (info==null) throw new ArgumentNullException("info"); base.WriteGraphData(info); if (!HasInvoker) return; info.Add("name",this.Invoker.Name); info.Add("test",this.Invoker.Generator.IsTest); }
/// <summary> /// Not implemented. /// </summary> /// <remarks/> /// <exception cref="InvalidOperationException">always thrown</exception> public override void ReadGraphData(IGraphSerializationInfo info) { throw new InvalidOperationException("Not implemented"); }
/// <summary> /// Adds nothing to serialization info /// </summary> /// <param name="info">data holder</param> /// <exception cref="ArgumentNullException">info is null</exception> /// <exception cref="ArgumentException">info is not serializing</exception> public override void WriteGraphData(IGraphSerializationInfo info) { base.WriteGraphData(info); info.Add("name", Name); }
private DataType[] ToDatas(IGraphSerializationInfo info) { DataType[] dts = new DataType[info.Count]; int i = 0; foreach(DictionaryEntry de in info) { dts[i] = new DataType(); dts[i].Key = de.Key.ToString(); if (de.Value!=null) dts[i].Text.AddString(de.Value.ToString()); ++i; } return dts; }
public ISerializableVertexAndEdgeListGraph Deserialize(XmlReader reader) { this.createdEdges = new Hashtable(); this.createdVertices = new Hashtable(); // rebuild graphml object XmlSerializer ser = new XmlSerializer(typeof(GraphMltype)); GraphMltype graphml = (GraphMltype)ser.Deserialize(reader); // get graph GraphType gt = null; foreach (Object item in graphml.Items) { gt = item as GraphType; if (gt != null) { break; } } if (gt == null) { throw new ArgumentException("no graph information found"); } // retreive data for reflection if (this.typeFromXml) { foreach (Object item in gt.Items) { DataType dt = item as DataType; if (dt == null) { continue; } switch (dt.Key) { case graphTypeKeyName: this.graphType = ToType(TextToString(dt.Text)); break; case vertexProviderTypeKeyName: this.vertexProviderType = ToType(TextToString(dt.Text)); break; case edgeProviderTypeKeyName: this.edgeProviderType = ToType(TextToString(dt.Text)); break; case allowParallelEdgesKeyName: this.allowParallelEdges = ToBool(TextToString(dt.Text)); break; } } } if (this.GraphType == null) { throw new InvalidOperationException("GraphType is null"); } if (this.VertexProviderType == null) { throw new InvalidOperationException("VertexProviderType is null"); } if (this.EdgeProviderType == null) { throw new InvalidOperationException("EdgeProviderType is null"); } // create graph ISerializableVertexAndEdgeListGraph g = CreateGraph( this.GraphType, this.VertexProviderType, this.EdgeProviderType, gt.EdgeDefault, this.allowParallelEdges ); // populate graph vertices bool isVertexDeserialiable = typeof(IGraphDeSerializable).IsAssignableFrom(g.VertexProvider.VertexType); foreach (Object item in gt.Items) { NodeType node = item as NodeType; if (node == null) { continue; } IVertex v = g.AddVertex(); this.CreatedVertices[node.ID] = v; if (isVertexDeserialiable) { IGraphSerializationInfo info = InfoFromNode(node); ((IGraphDeSerializable)v).ReadGraphData(info); } } bool isEdgeDeserialiable = typeof(IGraphDeSerializable).IsAssignableFrom(g.EdgeProvider.EdgeType); foreach (Object item in gt.Items) { EdgeType edge = item as EdgeType; if (edge == null) { continue; } IEdge e = g.AddEdge( (IVertex)this.CreatedVertices[edge.Source], (IVertex)this.CreatedVertices[edge.Target] ); this.CreatedEdges[edge.ID] = e.ID; if (isEdgeDeserialiable) { IGraphSerializationInfo info = InfoFromEdge(edge); ((IGraphDeSerializable)e).ReadGraphData(info); } } return(g); }