#region Apache License // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to you 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.Util; namespace log4net.Util.TypeConverters { /// /// Convert between string and /// /// /// /// Supports conversion from string to type, /// and from a type to a string. /// /// /// The string is used as the /// of the . /// /// /// /// /// /// Nicko Cadell internal class PatternStringConverter : IConvertTo, IConvertFrom { #region Implementation of IConvertTo /// /// Can the target type be converted to the type supported by this object /// /// A that represents the type you want to convert to /// true if the conversion is possible /// /// /// Returns true if the is /// assignable from a type. /// /// public bool CanConvertTo(Type targetType) { return (typeof(string).IsAssignableFrom(targetType)); } /// /// Converts the given value object to the specified type, using the arguments /// /// the object to convert /// The Type to convert the value parameter to /// the converted object /// /// /// Uses the method to convert the /// argument to a . /// /// /// /// The object cannot be converted to the /// . To check for this condition use the /// method. /// public object ConvertTo(object source, Type targetType) { PatternString patternString = source as PatternString; if (patternString != null && CanConvertTo(targetType)) { return patternString.Format(); } throw ConversionNotSupportedException.Create(targetType, source); } #endregion #region Implementation of IConvertFrom /// /// Can the source type be converted to the type supported by this object /// /// the type to convert /// true if the conversion is possible /// /// /// Returns true if the is /// the type. /// /// public bool CanConvertFrom(System.Type sourceType) { return (sourceType == typeof(string)); } /// /// Overrides the ConvertFrom method of IConvertFrom. /// /// the object to convert to a PatternString /// the PatternString /// /// /// Creates and returns a new using /// the as the /// . /// /// /// /// The object cannot be converted to the /// target type. To check for this condition use the /// method. /// public object ConvertFrom(object source) { string str = source as string; if (str != null) { return new PatternString(str); } throw ConversionNotSupportedException.Create(typeof(PatternString), source); } #endregion } }