Пример #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ObjectDefinitionParserHelper"/> class.
 /// </summary>
 /// <param name="readerContext">The reader context.</param>
 /// <param name="root">The root element of the definition document to parse</param>
 public ObjectDefinitionParserHelper(XmlReaderContext readerContext, XmlElement root)
 {
     log = LogManager.GetLogger(this.GetType());
     this.readerContext          = readerContext;
     this.objectsNamespaceParser = (ObjectsNamespaceParser)readerContext.NamespaceParserResolver.Resolve(ObjectsNamespaceParser.Namespace);
     if (root != null)
     {
         InitDefaults(root);
     }
 }
Пример #2
0
        /// <summary>
        /// Register the object definitions contained in the given DOM document.
        /// </summary>
        /// <param name="doc">The DOM document.</param>
        /// <param name="resource">
        /// The original resource from where the <see cref="System.Xml.XmlDocument"/>
        /// was read.
        /// </param>
        /// <returns>
        /// The number of object definitions that were registered.
        /// </returns>
        /// <exception cref="Oragon.Spring.Objects.ObjectsException">
        /// In case of parsing errors.
        /// </exception>
        public int RegisterObjectDefinitions(
            XmlDocument doc, IResource resource)
        {
            IObjectDefinitionDocumentReader documentReader = CreateObjectDefinitionDocumentReader();

            //TODO make void return and get object count from registry.
            int countBefore = Registry.ObjectDefinitionCount;
            XmlReaderContext readerContext = CreateReaderContext(resource);

            readerContext.NamespaceParserResolver = this.NamespaceParserResolver;
            documentReader.RegisterObjectDefinitions(doc, readerContext);
            return(Registry.ObjectDefinitionCount - countBefore);
        }
Пример #3
0
        /// <summary>
        /// Read object definitions from the given DOM element, and register
        /// them with the given object registry.
        /// </summary>
        /// <param name="doc">The DOM element containing object definitions, usually the
        /// root (document) element.</param>
        /// <param name="readerContext">The current context of the reader.  Includes
        /// the resource being parsed</param>
        /// <returns>
        /// The number of object definitions that were loaded.
        /// </returns>
        /// <exception cref="Oragon.Spring.Objects.ObjectsException">
        /// In case of parsing errors.
        /// </exception>
        public void RegisterObjectDefinitions(XmlDocument doc, XmlReaderContext readerContext)
        {
            //int objectDefinitionCounter = 0;

            this.readerContext = readerContext;

            #region Instrumentation

            if (log.IsDebugEnabled)
            {
                log.Debug("Loading object definitions.");
            }

            #endregion

            XmlElement root = doc.DocumentElement;

            ObjectDefinitionParserHelper parserHelper = CreateHelper(readerContext, root);


            PreProcessXml(root);

            ParseObjectDefinitions(root, parserHelper);

            PostProcessXml(root);

            #region Instrumentation

            if (log.IsDebugEnabled)
            {
                log.Debug(
                    string.Format(
                        "Found {0} <{1}> elements defining objects.",
                        readerContext.Registry.ObjectDefinitionCount,
                        ObjectDefinitionConstants.ObjectElement));
            }

            #endregion
        }
Пример #4
0
        /// <summary>
        /// Creates an <see cref="ObjectDefinitionParserHelper"/> instance for the given <paramref name="readerContext"/> and <paramref name="root"/> element.
        /// </summary>
        /// <param name="readerContext">the <see cref="XmlReaderContext"/> to create the <see cref="ObjectDefinitionParserHelper"/> </param>
        /// <param name="root">the root <see cref="XmlElement"/> to start reading from</param>
        /// <returns>a new <see cref="ObjectDefinitionParserHelper"/> instance</returns>
        protected virtual ObjectDefinitionParserHelper CreateHelper(XmlReaderContext readerContext, XmlElement root)
        {
            ObjectDefinitionParserHelper helper = new ObjectDefinitionParserHelper(readerContext, root);

            return(helper);
        }
Пример #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ParserContext"/> class.
 /// </summary>
 /// <param name="parserHelper">The parser helper.</param>
 /// <param name="containingObjectDefinition">The containing object definition.</param>
 public ParserContext(ObjectDefinitionParserHelper parserHelper, IObjectDefinition containingObjectDefinition)
 {
     this.readerContext = parserHelper.ReaderContext;
     this.parserHelper  = parserHelper;
     this.containingObjectDefinition = containingObjectDefinition;
 }
Пример #6
0
//        private Stack containingComponents = new Stack();

        /// <summary>
        /// Initializes a new instance of the <see cref="ParserContext"/> class.
        /// </summary>
        /// <param name="parserHelper">The parser helper.</param>
        public ParserContext(ObjectDefinitionParserHelper parserHelper)
        {
            this.readerContext = parserHelper.ReaderContext;
            this.parserHelper  = parserHelper;
        }
Пример #7
0
 public void RegisterObjectDefinitions(XmlDocument doc, XmlReaderContext readerContext)
 {
     throw new TestException("RegisterObjectDefinitions");
 }
Пример #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ObjectDefinitionParserHelper"/> class.
 /// </summary>
 /// <param name="readerContext">The reader context.</param>
 public ObjectDefinitionParserHelper(XmlReaderContext readerContext)
     : this(readerContext, null)
 {
 }