private static void Call(Arebis.CodeGeneration.IGenerationHost host, IZetboxContext ctx, Serialization.SerializationMembersList serializationList, Property prop, bool hasPersistentOrder, bool isList, string collectionWrapperClass, string listWrapperClass) { if (prop == null) { throw new ArgumentNullException("prop"); } if (!isList) { throw new ArgumentOutOfRangeException("prop", "prop must be a List-valued property"); } string name = prop.Name; string backingName = "_" + name; string backingCollectionType = (hasPersistentOrder ? listWrapperClass : collectionWrapperClass); string exposedCollectionInterface = hasPersistentOrder ? "IList" : "ICollection"; string thisInterface = prop.ObjectClass.Name; string referencedType = prop.GetElementTypeString(); string referencedCollectionEntry = prop.GetCollectionEntryFullName(); string referencedCollectionEntryImpl = referencedCollectionEntry + host.Settings["extrasuffix"] + Zetbox.API.Helper.ImplementationSuffix; string providerCollectionType = "ObservableCollection<" + referencedCollectionEntryImpl + ">"; string underlyingCollectionName = "_" + name + "Collection"; string moduleNamespace = prop.Module.Namespace; Call( host, ctx, serializationList, name, backingName, backingCollectionType, exposedCollectionInterface, thisInterface, referencedType, referencedCollectionEntry, referencedCollectionEntryImpl, providerCollectionType, underlyingCollectionName, !hasPersistentOrder, moduleNamespace, prop.DisableExport == true); }
private static void Call(Arebis.CodeGeneration.IGenerationHost host, IZetboxContext ctx, Templates.Serialization.SerializationMembersList serializationList, Property prop, bool hasPersistentOrder, bool isList, bool orderByValue) { if (prop == null) { throw new ArgumentNullException("prop"); } if (!isList) { throw new ArgumentOutOfRangeException("prop", "prop must be a List-valued property"); } string name = prop.Name; string backingName = "_" + name; string exposedCollectionInterface = hasPersistentOrder ? "IList" : "ICollection"; string thisInterface = prop.ObjectClass.Name; string referencedType = prop.GetElementTypeString(); string referencedCollectionEntry = prop.GetCollectionEntryFullName(); string referencedCollectionEntryImpl = referencedCollectionEntry + host.Settings["extrasuffix"] + Zetbox.API.Helper.ImplementationSuffix; string referencedCollectionEntryProxy = referencedCollectionEntryImpl + "." + prop.GetCollectionEntryClassName() + "Proxy"; string providerCollectionType = "ICollection<" + referencedCollectionEntryImpl + ">"; string underlyingCollectionName = name + "Collection"; string underlyingCollectionBackingName = backingName + "Collection"; string moduleNamespace = prop.Module.Namespace; string backingCollectionType = (hasPersistentOrder ? "ClientValueListWrapper" : "ClientValueCollectionWrapper") + String.Format("<{0}, {1}, {2}, {3}, {4}>", thisInterface, referencedType, referencedCollectionEntry, referencedCollectionEntryImpl, providerCollectionType); Call( host, ctx, serializationList, name, backingName, backingCollectionType, exposedCollectionInterface, thisInterface, referencedType, referencedCollectionEntry, referencedCollectionEntryImpl, referencedCollectionEntryProxy, providerCollectionType, underlyingCollectionName, underlyingCollectionBackingName, orderByValue, moduleNamespace, prop.DisableExport == true); }