using System;
using System.Collections.Generic;
using System.Text;
using DataPerformer.Interfaces;
namespace DataPerformer
{
/// <summary>
/// Constant measure
/// </summary>
public class ConstantMeasure : IMeasure, IDerivation
{
#region Fields
/// <summary>
/// Return object
/// </summary>
private object obj;
/// <summary>
/// Return type
/// </summary>
private object type;
/// <summary>
/// Double return type
/// </summary>
static private readonly Double a = 0;
/// <summary>
/// Measure parameter
/// </summary>
private Func<object> par;
/// <summary>
/// Name of measure
/// </summary>
private string name;
/// <summary>
/// zero
/// </summary>
public static readonly ConstantMeasure Zero = new ConstantMeasure();
#endregion
#region Ctor
/// <summary>
/// Constructor of zero constant measure
/// </summary>
private ConstantMeasure()
: this(0)
{
}
/// <summary>
/// Constructor of double constant measure
/// </summary>
/// <param name="x">The double</param>
public ConstantMeasure(double x)
{
par = getPar;
this.obj = x;
this.type = a;
name = "";
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="obj">Rerurn object</param>
/// <param name="type">Return type</param>
/// <param name="name">Name of measure</param>
public ConstantMeasure(object obj, object type, string name)
{
par = getPar;
this.obj = obj;
this.type = type;
this.name = name;
}
#endregion
#region IMeasure Members
Func<object> IMeasure.Parameter
{
get { return par; }
}
string IMeasure.Name
{
get { return name; }
}
object IMeasure.Type
{
get { return type; }
}
#endregion
#region IDerivation Members
IMeasure IDerivation.Derivation
{
get { return Zero; }
}
#endregion
#region Specific Members
object getPar()
{
return obj;
}
#endregion
}
}