using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using FormulaEditor;
using DiagramUI;
namespace DataPerformer
{
/// <summary>
/// Measurement
/// </summary>
public class Measure : IMeasure
{
/// <summary>
/// Names of types
/// </summary>
public static readonly string[] TypeNames = {"Double", "Boolean", "Byte", "UInt16", "UInt32", "UInt64", "SByte",
"Int16", "Int32", "Int64", "String"};
/// <summary>
/// Measurement parameter
/// </summary>
private MeasureParameter parameter;
/// <summary>
/// Measurement parameter time derivation
/// </summary>
//private MeasureParameter derivation;
/// <summary>
/// Measurement name
/// </summary>
private string name;
/// <summary>
/// Factor
/// </summary>
//private double factor = 1;
/// <summary>
/// Type of parameter
/// </summary>
private object type;
private static readonly Double a = 0;
/// <summary>
/// Constructor
/// </summary>
/// <param name="type">Type of parameter</param>
/// <param name="parameter">Measurement parameter</param>
/// <param name="derivation">Measurement parameter time derivation</param>
/// <param name="name">Measurement name</param>
public Measure(object type, MeasureParameter parameter, string name)
{
this.parameter = parameter;
this.name = name;
this.type = type;
}
public Measure(MeasureParameter parameter, string name)
:
this(a, parameter, name)
{
Double a = 0;
}
/// <summary>
/// Parameter of measurement
/// </summary>
public MeasureParameter Parameter
{
get
{
return parameter;
}
}
/// <summary>
/// Type of parameter
/// </summary>
public object Type
{
get
{
return type;
}
}
/// <summary>
/// The measurement name
/// </summary>
public string Name
{
get
{
return name;
}
}
public static string GetTypeName(object type)
{
string str = "";
object t = ArrayReturnType.GetBaseType(type);
if (t is Double)
{
str = "Double";
}
if (t is Boolean)
{
str = "Boolean";
}
if (t is Byte)
{
str = "Byte";
}
if (t is UInt16)
{
str = "UInt16";
}
if (t is UInt32)
{
str = "UInt32";
}
if (t is UInt64)
{
str = "UInt64";
}
if (t is SByte)
{
str = "SByte";
}
if (t is Int16)
{
str = "Int16";
}
if (t is Int32)
{
str = "Int32";
}
if (t is Int64)
{
str = "Int64";
}
if (t is string)
{
str = "String";
}
if (type is ArrayReturnType)
{
str = PureDesktop.GetResourceString(str);
ArrayReturnType art = type as ArrayReturnType;
int[] n = art.Dimension;
for (int i = n.Length - 1; i >= 0; i--)
{
str = str + "[" + n[i] + "]";
}
return str;
}
return PureDesktop.GetResourceString(str);
}
public static object GetType(string s)
{
for (int i = 0; i < TypeNames.Length; i++)
{
if (TypeNames[i].Equals(s))
{
return ElementaryBinaryOperation.Types[i];
}
}
return 0;
}
}
}