#region Apache Notice
/*****************************************************************************
* $Revision$
* $LastChangedDate$
* $LastChangedBy$
*
* iBATIS.NET Data Mapper
* Copyright (C) 2006/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
#region Using
using System.Collections.Specialized;
using System.Xml;
using IBatisNet.Common.Xml;
#endregion
namespace IBatisNet.Common
{
///
/// Summary description for ProviderDeSerializer.
///
public sealed class ProviderDeSerializer
{
///
/// Deserializes the specified node in a .
///
/// The node.
/// The
public static IDbProvider Deserialize(XmlNode node)
{
IDbProvider provider = new DbProvider();
NameValueCollection prop = NodeUtils.ParseAttributes(node);
provider.AssemblyName = prop["assemblyName"];
provider.CommandBuilderClass = prop["commandBuilderClass"];
provider.DbCommandClass = prop["commandClass"];
provider.DbConnectionClass = prop["connectionClass"];
provider.DataAdapterClass = prop["dataAdapterClass"];
provider.Description = prop["description"];
provider.IsDefault = NodeUtils.GetBooleanAttribute(prop, "default", false);
provider.IsEnabled = NodeUtils.GetBooleanAttribute(prop, "enabled", true);
provider.Name = prop["name"];
provider.ParameterDbTypeClass = prop["parameterDbTypeClass"];
provider.ParameterDbTypeProperty = prop["parameterDbTypeProperty"];
provider.ParameterPrefix = prop["parameterPrefix"];
provider.SetDbParameterPrecision = NodeUtils.GetBooleanAttribute(prop, "setDbParameterPrecision", true);
provider.SetDbParameterScale = NodeUtils.GetBooleanAttribute(prop, "setDbParameterScale", true);
provider.SetDbParameterSize = NodeUtils.GetBooleanAttribute(prop, "setDbParameterSize", true);
provider.UseDeriveParameters = NodeUtils.GetBooleanAttribute(prop, "useDeriveParameters", true);
provider.UseParameterPrefixInParameter = NodeUtils.GetBooleanAttribute(prop, "useParameterPrefixInParameter", true);
provider.UseParameterPrefixInSql = NodeUtils.GetBooleanAttribute(prop, "useParameterPrefixInSql", true);
provider.UsePositionalParameters = NodeUtils.GetBooleanAttribute(prop, "usePositionalParameters", false);
provider.AllowMARS = NodeUtils.GetBooleanAttribute(prop, "allowMARS", false);
return provider;
}
}
}