#region License
/*
* Copyright 2002-2007 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#endregion
using System;
using System.Collections;
using Spring.Objects.Factory.Config;
using Spring.Objects.Factory.Support;
namespace Spring.Objects.Factory.Xml{
/// <summary>
/// Context that gets passed along an object definition parsing process, encapsulating
/// all relevant configuraiton as well as state.
/// </summary>
public class ParserContext
{
private readonly XmlReaderContext readerContext;
private readonly ObjectDefinitionParserHelper parserHelper;
private readonly IObjectDefinition 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;
}
/// <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;
}
/// <summary>
/// Initializes a new instance of the <see cref="ParserContext"/> class.
/// </summary>
/// <param name="readerContext">The reader context.</param>
/// <param name="parserHelper">The parser helper.</param>
[Obsolete("consider using ParserContext(ObjectDefinitionParserHelper) instead", false)]
public ParserContext(XmlReaderContext readerContext, ObjectDefinitionParserHelper parserHelper)
{
this.readerContext = readerContext;
this.parserHelper = parserHelper;
}
/// <summary>
/// Initializes a new instance of the <see cref="ParserContext"/> class.
/// </summary>
/// <param name="readerContext">The reader context.</param>
/// <param name="parserHelper">The parser helper.</param>
/// <param name="containingObjectDefinition">The containing object definition.</param>
[Obsolete("consider using ParserContext(ObjectDefinitionParserHelper, IObjectDefinition) instead", false)]
public ParserContext(XmlReaderContext readerContext, ObjectDefinitionParserHelper parserHelper, IObjectDefinition containingObjectDefinition)
{
this.readerContext = readerContext;
this.parserHelper = parserHelper;
this.containingObjectDefinition = containingObjectDefinition;
}
/// <summary>
/// Gets the reader context.
/// </summary>
/// <value>The reader context.</value>
public XmlReaderContext ReaderContext
{
get { return readerContext; }
}
/// <summary>
/// Gets the registry.
/// </summary>
/// <value>The registry.</value>
public IObjectDefinitionRegistry Registry
{
get { return readerContext.Registry; }
}
/// <summary>
/// Gets the parser helper.
/// </summary>
/// <value>The parser helper.</value>
public ObjectDefinitionParserHelper ParserHelper
{
get { return parserHelper; }
}
/// <summary>
/// Gets the containing object definition.
/// </summary>
/// <value>The containing object definition.</value>
public IObjectDefinition ContainingObjectDefinition
{
get { return containingObjectDefinition; }
}
/// <summary>
/// Gets a value indicating whether this instance is nested.
/// </summary>
/// <value><c>true</c> if this instance is nested; otherwise, <c>false</c>.</value>
public bool IsNested
{
get { return containingObjectDefinition != null; }
}
/// <summary>
/// Gets a value indicating whether this instance is default lazy init.
/// </summary>
/// <value>
/// <c>true</c> if this instance is default lazy init; otherwise, <c>false</c>.
/// </value>
public bool IsDefaultLazyInit
{
get { return ObjectDefinitionConstants.TrueValue.Equals(ParserHelper.Defaults.LazyInit); }
}
}
}
|