nicko       2004/08/19 14:19:52

  Modified:    src/Util/TypeConverters ConverterRegistry.cs
  Added:       src/Util/TypeConverters PatternLayoutConverter.cs
  Log:
  Added PatternLayoutConverter
  
  Revision  Changes    Path
  1.5       +3 -14     
logging-log4net/src/Util/TypeConverters/ConverterRegistry.cs
  
  Index: ConverterRegistry.cs
  ===================================================================
  RCS file: 
/home/cvs/logging-log4net/src/Util/TypeConverters/ConverterRegistry.cs,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ConverterRegistry.cs      30 Jul 2004 14:15:30 -0000      1.4
  +++ ConverterRegistry.cs      19 Aug 2004 21:19:52 -0000      1.5
  @@ -60,6 +60,7 @@
                        AddConverter(typeof(bool), typeof(BooleanConverter));
                        AddConverter(typeof(System.Text.Encoding), 
typeof(EncodingConverter));
                        AddConverter(typeof(System.Type), 
typeof(TypeConverter));
  +                     AddConverter(typeof(log4net.Layout.PatternLayout), 
typeof(PatternLayoutConverter));
                        AddConverter(typeof(log4net.Util.PatternString), 
typeof(PatternStringConverter));
                }
   
  @@ -104,14 +105,8 @@
                        // TODO: Support inheriting type converters.
   
                        // i.e. getting a type converter for a base of 
destinationType
  -                     IConvertTo converter = null;
  -
                        // Lookup in the static registry
  -                     object obj = s_registry.m_type2converter[sourceType];
  -                     if ((obj != null) && (obj is IConvertTo))
  -                     {
  -                             converter = (IConvertTo)obj;
  -                     }
  +                     IConvertTo converter = 
s_registry.m_type2converter[sourceType] as IConvertTo;
   
                        if (converter == null)
                        {
  @@ -141,14 +136,8 @@
                        // TODO: Support inheriting type converters.
   
                        // i.e. getting a type converter for a base of 
destinationType
  -                     IConvertFrom converter = null;
  -
                        // Lookup in the static registry
  -                     object obj = 
s_registry.m_type2converter[destinationType];
  -                     if ((obj != null) && (obj is IConvertFrom))
  -                     {
  -                             converter = (IConvertFrom)obj;
  -                     }
  +                     IConvertFrom converter = 
s_registry.m_type2converter[destinationType] as IConvertFrom;
   
                        if (converter == null)
                        {
  
  
  
  1.1                  
logging-log4net/src/Util/TypeConverters/PatternLayoutConverter.cs
  
  Index: PatternLayoutConverter.cs
  ===================================================================
  #region Copyright & License
  //
  // Copyright 2001-2004 The Apache Software Foundation
  //
  // 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.Text;
  
  using log4net.Layout;
  
  namespace log4net.Util.TypeConverters
  {
        /// <summary>
        /// Implementation of <see cref="IConvertFrom"/> that converts 
        /// a string into a <see cref="PatternLayout"/>.
        /// </summary>
        /// <author>Nicko Cadell</author>
        public class PatternLayoutConverter : IConvertFrom
        {
                #region Implementation of IConvertFrom
  
                /// <summary>
                /// Overrides the CanConvertFrom method of IConvertFrom.
                /// The ITypeDescriptorContext interface provides the context 
for the
                /// conversion. Typically this interface is used at design time 
to 
                /// provide information about the design-time container.
                /// </summary>
                /// <param name="sourceType"></param>
                /// <returns>true if the source is a string</returns>
                public bool CanConvertFrom(System.Type sourceType)
                {
                        return (sourceType == typeof(string));
                }
  
                /// <summary>
                /// Overrides the ConvertFrom method of IConvertFrom.
                /// </summary>
                /// <param name="source">the object to convert to a 
PatternLayout</param>
                /// <returns>the PatternLayout</returns>
                public object ConvertFrom(object source) 
                {
                        if (source is string) 
                        {
                                return new PatternLayout((string)source);
                        }
                        throw 
ConversionNotSupportedException.Create(typeof(PatternLayout), source);
                }
  
                #endregion
        }
  }
  
  
  

Reply via email to