#region Copyright & License // // Copyright 2001-2005 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 log4net; using log4net.Core; using log4net.Util.TypeConverters; namespace log4net.Layout { /// /// Type converter for the interface /// /// /// /// Used to convert objects to the interface. /// Supports converting from the interface to /// the interface using the . /// /// /// Nicko Cadell /// Gert Driesen public class RawLayoutConverter : IConvertFrom { #region Override Implementation of IRawLayout /// /// Can the sourceType be converted to an /// /// the source to be to be converted /// true if the source type can be converted to /// /// /// Test if the can be converted to a /// . Only is supported /// as the . /// /// public bool CanConvertFrom(Type sourceType) { // Accept an ILayout object return (typeof(ILayout).IsAssignableFrom(sourceType)); } /// /// Convert the value to a object /// /// the value to convert /// the object /// /// /// Convert the object to a /// object. If the object /// is a then the /// is used to adapt between the two interfaces, otherwise an /// exception is thrown. /// /// public object ConvertFrom(object source) { ILayout layout = source as ILayout; if (layout != null) { return new Layout2RawLayoutAdapter(layout); } throw ConversionNotSupportedException.Create(typeof(IRawLayout), source); } #endregion } }