Метаданные документа
Inheritance: MetadataObject
Beispiel #1
0
        /// <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);
        }
Beispiel #4
0
        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);
        }