using System;
using NHapi.Base.Model;
using NHapi.Base.Log;
using NHapi.Base;
using NHapi.Base.Model.Primitive;
namespace NHapi.Model.V251.Datatype{
///<summary>
/// <p>The HL7 NA (Numeric Array) data type. Consists of the following components: </p><ol>
/// <li>Value1 (NM)</li>
/// <li>Value2 (NM)</li>
/// <li>Value3 (NM)</li>
/// <li>Value4 (NM)</li>
/// </ol>
///</summary>
[Serializable]
public class NA : AbstractType, IComposite{
private IType[] data;
///<summary>
/// Creates a NA.
/// <param name="message">The Message to which this Type belongs</param>
///</summary>
public NA(IMessage message) : this(message, null){}
///<summary>
/// Creates a NA.
/// <param name="message">The Message to which this Type belongs</param>
/// <param name="description">The description of this type</param>
///</summary>
public NA(IMessage message, string description) : base(message, description){
data = new IType[4];
data[0] = new NM(message,"Value1");
data[1] = new NM(message,"Value2");
data[2] = new NM(message,"Value3");
data[3] = new NM(message,"Value4");
}
///<summary>
/// Returns an array containing the data elements.
///</summary>
public IType[] Components
{
get{
return this.data;
}
}
///<summary>
/// Returns an individual data component.
/// @throws DataTypeException if the given element number is out of range.
///<param name="index">The index item to get (zero based)</param>
///<returns>The data component (as a type) at the requested number (ordinal)</returns>
///</summary>
public IType this[int index] {
get{
try {
return this.data[index];
} catch (System.ArgumentOutOfRangeException) {
throw new DataTypeException("Element " + index + " doesn't exist in 4 element NA composite");
}
}
}
///<summary>
/// Returns Value1 (component #0). This is a convenience method that saves you from
/// casting and handling an exception.
///</summary>
public NM Value1 {
get{
NM ret = null;
try {
ret = (NM)this[0];
} catch (DataTypeException e) {
HapiLogFactory.getHapiLog(this.GetType()).error("Unexpected problem accessing known data type component - this is a bug.", e);
throw new System.Exception("An unexpected error ocurred",e);
}
return ret;
}
}
///<summary>
/// Returns Value2 (component #1). This is a convenience method that saves you from
/// casting and handling an exception.
///</summary>
public NM Value2 {
get{
NM ret = null;
try {
ret = (NM)this[1];
} catch (DataTypeException e) {
HapiLogFactory.getHapiLog(this.GetType()).error("Unexpected problem accessing known data type component - this is a bug.", e);
throw new System.Exception("An unexpected error ocurred",e);
}
return ret;
}
}
///<summary>
/// Returns Value3 (component #2). This is a convenience method that saves you from
/// casting and handling an exception.
///</summary>
public NM Value3 {
get{
NM ret = null;
try {
ret = (NM)this[2];
} catch (DataTypeException e) {
HapiLogFactory.getHapiLog(this.GetType()).error("Unexpected problem accessing known data type component - this is a bug.", e);
throw new System.Exception("An unexpected error ocurred",e);
}
return ret;
}
}
///<summary>
/// Returns Value4 (component #3). This is a convenience method that saves you from
/// casting and handling an exception.
///</summary>
public NM Value4 {
get{
NM ret = null;
try {
ret = (NM)this[3];
} catch (DataTypeException e) {
HapiLogFactory.getHapiLog(this.GetType()).error("Unexpected problem accessing known data type component - this is a bug.", e);
throw new System.Exception("An unexpected error ocurred",e);
}
return ret;
}
}
}}
|