public virtual bool VisitEnter(NamespaceDescriptor ns) { return(true); }
public override bool VisitEnter(NamespaceDescriptor ns) { currentNamespace = ns.Name; return(base.VisitEnter(ns)); }
public override bool VisitLeave(NamespaceDescriptor ns) { currentNamespace = null; return(base.VisitLeave(ns)); }
public override bool VisitEnter(NamespaceDescriptor ns) { nowQueue = true; return(base.VisitEnter(ns)); }
public override bool VisitLeave(NamespaceDescriptor ns) { nowQueue = false; return(base.VisitLeave(ns)); }
internal PrimitiveTypeDescriptor(string name, NamespaceDescriptor nameSpace) : base(name, nameSpace) { }
public void OnLeave(NamespaceDescriptor node) { _namespaces.Pop(); }
public void OnEnter(NamespaceDescriptor node) { _namespaces.Push(_converter(Namespace, node)); }
/// <summary></summary> protected virtual ISerializer CreateCompilerSerializer() { // Convert namespace, assembly and version to use the compiler classes. ISerializer Serializer = new Serializer(); Dictionary <NamespaceDescriptor, NamespaceDescriptor> NamespaceOverrideTable = new Dictionary <NamespaceDescriptor, NamespaceDescriptor>(); NamespaceOverrideTable.Add(new NamespaceDescriptor("BaseNode", "*", "*", "*", "*"), NamespaceDescriptor.DescriptorFromType(typeof(IRoot))); Serializer.NamespaceOverrideTable = NamespaceOverrideTable; Serializer.OverrideGenericArguments = false; return(Serializer); }
private static void processNamespace(NamespaceDesc ns, NamespaceDescriptor namespaceDescriptor) { if (ns.Items != null) { foreach (var t in ns.Items) { if (t is Composite composite) { var descriptor = namespaceDescriptor.CreateCompositeType(composite.name); if (composite.Field != null) { foreach (var field in composite.Field) { var newField = descriptor.AddField(field.name, field.type, field.isCollectionSpecified && field.isCollection); if (field.AttachedData != null) {//TODO hack for boolean values field.AttachedData.Select(_ => new KeyValuePair <string, object>(_.key, _.value == "True" ? (object)true : _.value)).ToList().ForEach(_ => newField.AttachedData.Add(_)); } } } } else { if (t is Primitive primitive) { var descriptor = namespaceDescriptor.CreatePrimitiveType(primitive.name); } else { if (t is Enumeration enumeration) { var descriptor = namespaceDescriptor.CreateEnumerationType(enumeration.name); int i = 0; foreach (var item in enumeration.Item) { if (item.valueSpecified) { descriptor.AddItem(item.name, item.value); i = item.value; } else { descriptor.AddItem(item.name, i); } ++i; } } else { throw new Exception("Unknown type"); } } } } } if (ns.Namespace != null) { foreach (var n in ns.Namespace) { processNamespace(n, namespaceDescriptor.GetOrCreateNamespace(n.name)); } } }