001/*
002 * This class is an auto-generated source file for a HAPI
003 * HL7 v2.x standard structure class.
004 *
005 * For more information, visit: http://hl7api.sourceforge.net/
006 * 
007 * The contents of this file are subject to the Mozilla Public License Version 1.1 
008 * (the "License"); you may not use this file except in compliance with the License. 
009 * You may obtain a copy of the License at http://www.mozilla.org/MPL/ 
010 * Software distributed under the License is distributed on an "AS IS" basis, 
011 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 
012 * specific language governing rights and limitations under the License. 
013 * 
014 * The Original Code is "[file_name]".  Description: 
015 * "[one_line_description]" 
016 * 
017 * The Initial Developer of the Original Code is University Health Network. Copyright (C) 
018 * 2012.  All Rights Reserved. 
019 * 
020 * Contributor(s): ______________________________________. 
021 * 
022 * Alternatively, the contents of this file may be used under the terms of the 
023 * GNU General Public License (the  "GPL"), in which case the provisions of the GPL are 
024 * applicable instead of those above.  If you wish to allow use of your version of this 
025 * file only under the terms of the GPL and not to allow others to use your version 
026 * of this file under the MPL, indicate your decision by deleting  the provisions above 
027 * and replace  them with the notice and other provisions required by the GPL License.  
028 * If you do not delete the provisions above, a recipient may use your version of 
029 * this file under either the MPL or the GPL. 
030 * 
031 */
032
033package ca.uhn.hl7v2.model.v231.datatype;
034
035import ca.uhn.hl7v2.model.DataTypeException;
036import ca.uhn.hl7v2.model.Message;
037import ca.uhn.hl7v2.model.Type;
038import ca.uhn.hl7v2.model.AbstractComposite;
039
040/**
041 * <p>Represents an HL7 CD (channel definition) data type. 
042 * This type consists of the following components:</p>
043 * <ul>
044 * <li>channel identifier (WVI)
045 * <li>electrode names (WVS)
046 * <li>channel sensitivity/units (CSU)
047 * <li>calibration parameters (CCP)
048 * <li>sampling frequency (NM)
049 * <li>minimum/maximum data values (NR)
050 * </ul>
051 */
052@SuppressWarnings("unused")
053public class CD extends AbstractComposite {
054
055    private Type[] data;
056
057    /** 
058     * Creates a new CD type
059     */
060    public CD(Message message) {
061        super(message);
062        init();
063    }
064
065    private void init() {
066        data = new Type[6];    
067        data[0] = new WVI(getMessage());
068        data[1] = new WVS(getMessage());
069        data[2] = new CSU(getMessage());
070        data[3] = new CCP(getMessage());
071        data[4] = new NM(getMessage());
072        data[5] = new NR(getMessage());
073    }
074
075
076    /**
077     * Returns an array containing the data elements.
078     */
079    public Type[] getComponents() { 
080        return this.data; 
081    }
082
083    /**
084     * Returns an individual data component.
085     *
086     * @param number The component number (0-indexed)
087     * @throws DataTypeException if the given element number is out of range.
088     */
089    public Type getComponent(int number) throws DataTypeException { 
090
091        try { 
092            return this.data[number]; 
093        } catch (ArrayIndexOutOfBoundsException e) { 
094            throw new DataTypeException("Element " + number + " doesn't exist (Type " + getClass().getName() + " has only " + this.data.length + " components)"); 
095        } 
096    } 
097
098
099    /**
100     * Returns channel identifier (component 1).  This is a convenience method that saves you from 
101     * casting and handling an exception.
102     */
103    public WVI getChannelIdentifier() {
104       return getTyped(0, WVI.class);
105    }
106
107    
108    /**
109     * Returns channel identifier (component 1).  This is a convenience method that saves you from 
110     * casting and handling an exception.
111     */
112    public WVI getCd1_ChannelIdentifier() {
113       return getTyped(0, WVI.class);
114    }
115
116
117    /**
118     * Returns electrode names (component 2).  This is a convenience method that saves you from 
119     * casting and handling an exception.
120     */
121    public WVS getElectrodeNames() {
122       return getTyped(1, WVS.class);
123    }
124
125    
126    /**
127     * Returns electrode names (component 2).  This is a convenience method that saves you from 
128     * casting and handling an exception.
129     */
130    public WVS getCd2_ElectrodeNames() {
131       return getTyped(1, WVS.class);
132    }
133
134
135    /**
136     * Returns channel sensitivity/units (component 3).  This is a convenience method that saves you from 
137     * casting and handling an exception.
138     */
139    public CSU getChannelSensitivityUnits() {
140       return getTyped(2, CSU.class);
141    }
142
143    
144    /**
145     * Returns channel sensitivity/units (component 3).  This is a convenience method that saves you from 
146     * casting and handling an exception.
147     */
148    public CSU getCd3_ChannelSensitivityUnits() {
149       return getTyped(2, CSU.class);
150    }
151
152
153    /**
154     * Returns calibration parameters (component 4).  This is a convenience method that saves you from 
155     * casting and handling an exception.
156     */
157    public CCP getCalibrationParameters() {
158       return getTyped(3, CCP.class);
159    }
160
161    
162    /**
163     * Returns calibration parameters (component 4).  This is a convenience method that saves you from 
164     * casting and handling an exception.
165     */
166    public CCP getCd4_CalibrationParameters() {
167       return getTyped(3, CCP.class);
168    }
169
170
171    /**
172     * Returns sampling frequency (component 5).  This is a convenience method that saves you from 
173     * casting and handling an exception.
174     */
175    public NM getSamplingFrequency() {
176       return getTyped(4, NM.class);
177    }
178
179    
180    /**
181     * Returns sampling frequency (component 5).  This is a convenience method that saves you from 
182     * casting and handling an exception.
183     */
184    public NM getCd5_SamplingFrequency() {
185       return getTyped(4, NM.class);
186    }
187
188
189    /**
190     * Returns minimum/maximum data values (component 6).  This is a convenience method that saves you from 
191     * casting and handling an exception.
192     */
193    public NR getMinimumMaximumDataValues() {
194       return getTyped(5, NR.class);
195    }
196
197    
198    /**
199     * Returns minimum/maximum data values (component 6).  This is a convenience method that saves you from 
200     * casting and handling an exception.
201     */
202    public NR getCd6_MinimumMaximumDataValues() {
203       return getTyped(5, NR.class);
204    }
205
206
207
208}
209