/// <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); } }
/// <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); }
/// <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 }
/// <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); }
/// <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; }
// 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; }
public void RegisterObjectDefinitions(XmlDocument doc, XmlReaderContext readerContext) { throw new TestException("RegisterObjectDefinitions"); }
/// <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) { }