/// <summary> /// Load from V8 xml /// </summary> /// <param name="node"></param> void IV8XmlSerializable.LoadFromV8Xml(System.Xml.XmlNode node) { XmlElement docTag = (XmlElement)node; DocumentMetadata metadata = (DocumentMetadata)this.Metadata; foreach (XmlNode nd in docTag.ChildNodes) { XmlElement valueTag = nd as XmlElement; if (valueTag == null) { continue; } if (ReadV8XmlAsSysPropertyValue(valueTag)) { continue; } var meta = metadata.Requisites[valueTag.Name]; if (meta != null) { ReadV8XmlAsRequisite(valueTag, meta); continue; } //TODO:load table parts } }
/// <summary> /// Create /// </summary> /// <param name="session"></param> /// <param name="ptr"></param> /// <returns></returns> internal static MetadataObject Create(Session session, object ptr) { string fullName = GetV8Property(ptr, FullNameProperty) as string; MetadataObject meta; if (fullName.StartsWith(RussianConsts.Catalog)) { meta = new MetadataObject(session, MetadataType.Catalog, ptr); } else if (fullName.StartsWith(RussianConsts.Document)) { meta = new DocumentMetadata(session, ptr); } else { meta = new MetadataObject(session, MetadataType.Unknown, ptr); } meta.PutToCache(FullNameProperty, fullName); return meta; }
/// <summary> /// Create /// </summary> /// <param name="session"></param> /// <param name="ptr"></param> /// <returns></returns> internal static MetadataObject Create(Session session, object ptr) { string fullName = GetV8Property(ptr, FullNameProperty) as string; MetadataObject meta; if (fullName.StartsWith(RussianConsts.Catalog)) { meta = new MetadataObject(session, MetadataType.Catalog, ptr); } else if (fullName.StartsWith(RussianConsts.Document)) { meta = new DocumentMetadata(session, ptr); } else { meta = new MetadataObject(session, MetadataType.Unknown, ptr); } meta.PutToCache(FullNameProperty, fullName); return(meta); }
private MetadataObject GetMetadata(object ptr) { if (ptr == null) { return(null); } MetadataObject meta; switch (this.MetadataType) { case MetadataType.DocumentCollection: meta = new DocumentMetadata(this.Session, ptr); break; case MetadataType.CatalogCollection: meta = new MetadataObject(this.Session, MetadataType.Catalog, ptr); break; case MetadataType.InformationRegisterCollection: meta = new InformationRegisterMetadata(this.Session, ptr); break; case MetadataType.AccumulationRegisterCollection: meta = new AccumulationRegisterMetadata(this.Session, ptr); break; case MetadataType.AccountingRegisterCollection: meta = new AccountingRegisterMetadata(this.Session, ptr); break; case MetadataType.CalculationRegisterCollection: meta = new CalculationRegisterMetadata(this.Session, ptr); break; case MetadataType.EnumCollection: meta = new EnumMetadata(this.Session, ptr); break; case MetadataType.DocumentJournalCollection: meta = new MetadataObject(this.Session, MetadataType.DocumentJournal, ptr); break; case MetadataType.ConstantCollection: meta = new MetadataObject(this.Session, MetadataType.Constant, ptr); break; case MetadataType.TablePartCollection: meta = new MetadataObject(this.Session, MetadataType.TablePart, ptr); break; case MetadataType.RequisiteCollection: meta = new MetadataObject(this.Session, MetadataType.Requisite, ptr); break; case MetadataType.MeasureCollection: meta = new MetadataObject(this.Session, MetadataType.Measure, ptr); break; case MetadataType.ResourceCollection: meta = new MetadataObject(this.Session, MetadataType.Resource, ptr); break; default: meta = new MetadataObject(this.Session, MetadataType.Unknown, ptr); break; } if (meta != null) { PutToIndexerCache(meta.Name, meta); } return(meta); }