/*
Kooboo is a content management system based on ASP.NET MVC framework. Copyright 2009 Yardi Technology Limited.
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License version 3 as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program.
If not, see http://www.kooboo.com/gpl3/.
*/
using System;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using Everest.Library.ExtensionMethod;
namespace Everest.CmsServices.DataRule.Pattern{
/// <summary>
///
/// </summary>
public static class PatternEvaluator
{
/// <summary>
/// Gets the value.
/// </summary>
/// <param name="pattern">The pattern.</param>
/// <param name="nameValues">The name values.</param>
/// <param name="o">The o.</param>
/// <returns></returns>
public static IPattern GetValue(string pattern, NameValueCollection nameValues, object o)
{
if (StringExtensions.IsNullOrEmptyTrim(pattern))
{
return new ConstPattern(null);
}
if (pattern.StartsWith("{"))
{
return new NameValuePattern(nameValues, o, pattern);
}
else if (pattern.StartsWith("["))
{
return new PropertyPattern(o, pattern);
}
else
{
return new ConstPattern(pattern);
}
}
public static int GetInt(string pattern, NameValueCollection nameValues, object o, int defaultValue)
{
IPattern patternValue = PatternEvaluator.GetValue(pattern, nameValues, o);
if (patternValue.Value == null || StringExtensions.IsNullOrEmptyTrim(patternValue.Value.ToString()))
{
return defaultValue;
}
return int.Parse(patternValue.Value.ToString());
}
}
}
|