public void Serialize <T>(IWriteVisitor visitor, T graph) { if (visitor == null) { throw new ArgumentNullException(nameof(visitor)); } if (graph == null) { throw new ArgumentNullException(nameof(graph)); } var traveller = _rootTravellers.GetOrAdd <T>(out var level); if (level == LevelType.Value) { var valueVisitor = ValueVisitor.Create <T>(); valueVisitor.VisitValue(visitor, VisitArgs.CreateRoot(level), graph); } else { var rootArgs = VisitArgs.CreateRoot(level); visitor.Visit(graph, rootArgs); traveller.Travel(visitor, graph); visitor.Leave(graph, rootArgs); } }
public void Visit(object graph, IWriteVisitor visitor) { foreach (var property in _properties) { property.Visit(graph, visitor); } }
public void Travel(IWriteVisitor visitor, Relation graph) { visitor.VisitValue(graph.Id, _argsId0); visitor.VisitValue(graph.Name, _argsName1); visitor.VisitValue(graph.Description, _argsDescription2); visitor.VisitValue(graph.Value, _argsValue3); }
public void Travel(IWriteVisitor visitor, NullableValuesEntity graph) { //visitor.VisitValue(new int?(graph.Id), _argsId0); //visitor.VisitValue(graph.MayBool, _argsMayBool1); visitor.VisitValue(graph.MayInt, _argsMayInt2); //visitor.VisitValue(graph.MayDateTime, _argsMayDateTime3); //visitor.VisitValue(graph.MayTimeSpan, _argsMayTimeSpan4); }
public void Visit(object graph, IWriteVisitor visitor) { var childGraph = _property.Ref.GetValue(graph); visitor.Visit(childGraph, _args); if (childGraph == null) { visitor.Leave(null, _args); return; } _propertyType.Visit(childGraph, visitor); visitor.Leave(childGraph, _args); }
public void Travel(IWriteVisitor visitor, TCollection graph) { var itemArgs = VisitArgs.CollectionItem; foreach (var element in graph) { if (_valueVisitor != null) { _valueVisitor.VisitValue(visitor, itemArgs, element); } else { visitor.Visit(element, itemArgs); _elementTraveller.Travel(visitor, element); visitor.Leave(element, itemArgs); } } }
public void Travel(IWriteVisitor visitor, MultidimensionalArrayGraph graph) { { var c = graph.Value; visitor.Visit(c, _argsValue); if (c != null) { for (var r0 = 0; r0 < c.GetLength(0); r0++) { visitor.Visit(c, VisitArgs.CollectionInCollection); for (var r1 = 0; r1 < c.GetLength(1); r1++) { visitor.VisitValue(c[r0, r1], VisitArgs.CollectionItem); } visitor.Leave(c, VisitArgs.CollectionInCollection); } } visitor.Leave(c, _argsValue); } }
public void Travel(IWriteVisitor visitor, TDictionary graph) { var valueArgs = VisitArgs.DictionaryValue; void TravelValue(TValue value) { if (_valueVisitor != null) { _valueVisitor.VisitValue(visitor, valueArgs, value); return; } visitor.Visit(value, valueArgs); _valueTraveller.Travel(visitor, value); visitor.Leave(value, valueArgs); } var keyArgs = VisitArgs.DictionaryKey; foreach (var kv in graph) { if (_keyVisitor != null) { _keyVisitor.VisitValue(visitor, keyArgs, kv.Key); TravelValue(kv.Value); } else { var key = kv.Key; visitor.Visit(key, keyArgs); _keyTraveller.Travel(visitor, key); visitor.Leave(key, keyArgs); TravelValue(kv.Value); } } }
public void Travel(IWriteVisitor visitor, object graph) { Travel(visitor, (NullableValuesEntity)graph); }
public override void VisitValue(IWriteVisitor visitor, VisitArgs args, decimal value) { visitor.VisitValue(value, args); }
public void Travel(IWriteVisitor visitor, T graph) { Travel(visitor, (object)graph); }
public void Travel(IWriteVisitor visitor, object graph) { Travel(visitor, (MultidimensionalArrayGraph)graph); }
void IGraphTraveller.Travel(IWriteVisitor visitor, object graph) { Travel(visitor, (TCollection)graph); }
public void Travel(IWriteVisitor visitor, object graph) { _type.Visit(graph, visitor); }
public void Travel(IWriteVisitor visitor, object graph) { Travel(visitor, (Category)graph); }
public void Travel(IWriteVisitor visitor, Category graph) { visitor.VisitValue(graph.Name, _argsName0); visitor.VisitValue(graph.Description, _argsDescription1); visitor.VisitValue(graph.Image, _argsImage2); }
public void Visit(object graph, IWriteVisitor visitor) { foreach (var property in _properties) property.Visit(graph, visitor); }
void IGraphTraveller.Travel(IWriteVisitor visitor, object graph) { Travel(visitor, (TDictionary)graph); }
public void Travel(IWriteVisitor visitor, object graph) { Travel(visitor, (Identifier)graph); }
public void Travel(IWriteVisitor visitor, object graph) { Travel(visitor, (DataBlock)graph); }
void IValueVisitor.VisitValue(IWriteVisitor visitor, VisitArgs args, object value) { VisitValue(visitor, args, (T)value); }
public void Visit(object graph, IWriteVisitor visitor) { var value = (Int16)_property.Ref.GetValue(graph); visitor.VisitValue(value, _args); }
public void Travel(IWriteVisitor visitor, Identifier graph) { visitor.VisitValue(graph.Id, _argsId0); visitor.VisitValue((int)graph.Type, _argsType1); }
public void Travel(IWriteVisitor visitor, DataBlock graph) { visitor.VisitValue(graph.Id, _argsId); visitor.VisitValue(graph.String, _argsString); visitor.VisitValue(graph.Int16, _argsInt16); visitor.VisitValue(graph.Int32, _argsInt32); visitor.VisitValue(graph.Int64, _argsInt64); visitor.VisitValue(graph.UInt16, _argsUInt16); visitor.VisitValue(graph.UInt32, _argsUInt32); visitor.VisitValue(graph.UInt64, _argsUInt64); visitor.VisitValue(graph.Single, _argsSingle); visitor.VisitValue(graph.Double, _argsDouble); visitor.VisitValue(graph.TimeSpan, _argsTimeSpan); visitor.VisitValue(graph.Decimal, _argsDecimal); visitor.VisitValue(graph.DateTime, _argsDateTime); visitor.VisitValue(graph.Byte, _argsByte); visitor.VisitValue(graph.Boolean, _argsBoolean); visitor.VisitValue(graph.Blob, _argsBlob); { var c = graph.Messages; visitor.Visit(c, _argsMessages); if (c != null) { foreach (var cv in c) { visitor.VisitValue(cv, VisitArgs.CollectionItem); } } visitor.Leave(c, _argsMessages); } { var c = (ICollection <DateTime>)graph.Stamps; visitor.Visit(c, _argsStamps); if (c != null) { foreach (var cv in c) { visitor.VisitValue(cv, VisitArgs.CollectionItem); } } visitor.Leave(c, _argsStamps); } { var c = graph.Relation; visitor.Visit(c, _argsRelation); if (c != null) { _travellerRelation0.Travel(visitor, c); } visitor.Leave(c, _argsRelation); } { var c = graph.DummyRelation; visitor.Visit(c, _argsDummyRelation); if (c != null) { _travellerRelation0.Travel(visitor, c); } visitor.Leave(c, _argsDummyRelation); } { var c = (ICollection <Relation>)graph.SecondaryRelations; visitor.Visit(c, _argsSecondaryRelations); if (c != null) { foreach (var cv in c) { visitor.Visit(cv, VisitArgs.CollectionItem); _travellerRelation0.Travel(visitor, cv); visitor.Leave(cv, VisitArgs.CollectionItem); } } visitor.Leave(c, _argsSecondaryRelations); } { var c = (IDictionary <string, int>)graph.IndexedValues; visitor.Visit(c, _argsIndexedValues); if (c != null) { foreach (var ckv in c) { visitor.VisitValue(ckv.Key, VisitArgs.DictionaryKey); visitor.VisitValue(ckv.Value, VisitArgs.DictionaryValue); } } visitor.Leave(c, _argsIndexedValues); } { var c = (IDictionary <Identifier, Category>)graph.Categories; visitor.Visit(c, _argsCategories); if (c != null) { foreach (var ckv in c) { visitor.Visit(ckv.Key, VisitArgs.DictionaryKey); _travellerIdentifier1.Travel(visitor, ckv.Key); visitor.Leave(ckv.Key, VisitArgs.DictionaryKey); visitor.Visit(ckv.Value, VisitArgs.DictionaryValue); _travellerCategory2.Travel(visitor, ckv.Value); visitor.Leave(ckv.Value, VisitArgs.DictionaryValue); } } visitor.Leave(c, _argsCategories); } }
public override void VisitValue(IWriteVisitor visitor, VisitArgs args, DateTime value) { visitor.VisitValue(value, args); }
public void Travel(IWriteVisitor visitor, object graph) { Travel(visitor, (Relation)graph); }
public abstract void VisitValue(IWriteVisitor visitor, VisitArgs args, T value);
public void Visit(object graph, IWriteVisitor visitor) { var value = (Int16) _property.Ref.GetValue(graph); visitor.VisitValue(value, _args); }
public override void VisitValue(IWriteVisitor visitor, VisitArgs args, byte[] value) { visitor.VisitValue(value, args); }