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
033
034package ca.uhn.hl7v2.model.v27.segment;
035
036// import ca.uhn.hl7v2.model.v27.group.*;
037import ca.uhn.hl7v2.model.v27.datatype.*;
038import ca.uhn.hl7v2.HL7Exception;
039import ca.uhn.hl7v2.parser.ModelClassFactory;
040import ca.uhn.hl7v2.parser.DefaultModelClassFactory;
041import ca.uhn.hl7v2.model.AbstractMessage;
042import ca.uhn.hl7v2.model.Group;
043import ca.uhn.hl7v2.model.Type;
044import ca.uhn.hl7v2.model.AbstractSegment;
045import ca.uhn.hl7v2.model.Varies;
046
047
048/**
049 *<p>Represents an HL7 ARV message segment (Access Restriction). 
050 * This segment has the following fields:</p>
051 * <ul>
052     * <li>ARV-1: Set ID (SI) <b>optional </b>
053     * <li>ARV-2: Access Restriction Action Code (CNE) <b> </b>
054     * <li>ARV-3: Access Restriction Value (CWE) <b> </b>
055     * <li>ARV-4: Access Restriction Reason (CWE) <b>optional repeating</b>
056     * <li>ARV-5: Special Access Restriction Instructions (ST) <b>optional repeating</b>
057     * <li>ARV-6: Access Restriction Date Range (DR) <b>optional </b>
058 * </ul>
059 */
060@SuppressWarnings("unused")
061public class ARV extends AbstractSegment {
062
063    /** 
064     * Creates a new ARV segment
065     */
066    public ARV(Group parent, ModelClassFactory factory) {
067       super(parent, factory);
068       init(factory);
069    }
070
071    private void init(ModelClassFactory factory) {
072       try {
073                                  this.add(SI.class, false, 1, 4, new Object[]{ getMessage() }, "Set ID");
074                                  this.add(CNE.class, true, 1, 0, new Object[]{ getMessage() }, "Access Restriction Action Code");
075                                  this.add(CWE.class, true, 1, 0, new Object[]{ getMessage() }, "Access Restriction Value");
076                                  this.add(CWE.class, false, 0, 0, new Object[]{ getMessage() }, "Access Restriction Reason");
077                                  this.add(ST.class, false, 0, 0, new Object[]{ getMessage() }, "Special Access Restriction Instructions");
078                                  this.add(DR.class, false, 1, 0, new Object[]{ getMessage() }, "Access Restriction Date Range");
079       } catch(HL7Exception e) {
080          log.error("Unexpected error creating ARV - this is probably a bug in the source code generator.", e);
081       }
082    }
083
084
085
086    /**
087     * Returns
088     * ARV-1: "Set ID" - creates it if necessary
089     */
090    public SI getSetID() { 
091                SI retVal = this.getTypedField(1, 0);
092                return retVal;
093    }
094    
095    /**
096     * Returns
097     * ARV-1: "Set ID" - creates it if necessary
098     */
099    public SI getArv1_SetID() { 
100                SI retVal = this.getTypedField(1, 0);
101                return retVal;
102    }
103
104
105
106    /**
107     * Returns
108     * ARV-2: "Access Restriction Action Code" - creates it if necessary
109     */
110    public CNE getAccessRestrictionActionCode() { 
111                CNE retVal = this.getTypedField(2, 0);
112                return retVal;
113    }
114    
115    /**
116     * Returns
117     * ARV-2: "Access Restriction Action Code" - creates it if necessary
118     */
119    public CNE getArv2_AccessRestrictionActionCode() { 
120                CNE retVal = this.getTypedField(2, 0);
121                return retVal;
122    }
123
124
125
126    /**
127     * Returns
128     * ARV-3: "Access Restriction Value" - creates it if necessary
129     */
130    public CWE getAccessRestrictionValue() { 
131                CWE retVal = this.getTypedField(3, 0);
132                return retVal;
133    }
134    
135    /**
136     * Returns
137     * ARV-3: "Access Restriction Value" - creates it if necessary
138     */
139    public CWE getArv3_AccessRestrictionValue() { 
140                CWE retVal = this.getTypedField(3, 0);
141                return retVal;
142    }
143
144
145    /**
146     * Returns all repetitions of Access Restriction Reason (ARV-4).
147     */
148    public CWE[] getAccessRestrictionReason() {
149        CWE[] retVal = this.getTypedField(4, new CWE[0]);
150        return retVal;
151    }
152
153
154    /**
155     * Returns all repetitions of Access Restriction Reason (ARV-4).
156     */
157    public CWE[] getArv4_AccessRestrictionReason() {
158        CWE[] retVal = this.getTypedField(4, new CWE[0]);
159        return retVal;
160    }
161
162
163    /**
164     * Returns a count of the current number of repetitions of Access Restriction Reason (ARV-4).
165     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
166     * it will return zero.
167     */
168    public int getAccessRestrictionReasonReps() {
169        return this.getReps(4);
170    }
171
172
173    /**
174     * Returns a specific repetition of
175     * ARV-4: "Access Restriction Reason" - creates it if necessary
176     *
177     * @param rep The repetition index (0-indexed)
178     */
179    public CWE getAccessRestrictionReason(int rep) { 
180                CWE retVal = this.getTypedField(4, rep);
181                return retVal;
182    }
183
184    /**
185     * Returns a specific repetition of
186     * ARV-4: "Access Restriction Reason" - creates it if necessary
187     *
188     * @param rep The repetition index (0-indexed)
189     */
190    public CWE getArv4_AccessRestrictionReason(int rep) { 
191                CWE retVal = this.getTypedField(4, rep);
192                return retVal;
193    }
194
195    /**
196     * Returns a count of the current number of repetitions of Access Restriction Reason (ARV-4).
197     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
198     * it will return zero.
199     */
200    public int getArv4_AccessRestrictionReasonReps() {
201        return this.getReps(4);
202    }
203
204
205    /**
206     * Inserts a repetition of
207     * ARV-4: "Access Restriction Reason" at a specific index
208     *
209     * @param rep The repetition index (0-indexed)
210     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
211     */
212    public CWE insertAccessRestrictionReason(int rep) throws HL7Exception { 
213        return (CWE) super.insertRepetition(4, rep);
214    }
215
216
217    /**
218     * Inserts a repetition of
219     * ARV-4: "Access Restriction Reason" at a specific index
220     *
221     * @param rep The repetition index (0-indexed)
222     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
223     */
224    public CWE insertArv4_AccessRestrictionReason(int rep) throws HL7Exception { 
225        return (CWE) super.insertRepetition(4, rep);
226    }
227
228
229    /**
230     * Removes a repetition of
231     * ARV-4: "Access Restriction Reason" at a specific index
232     *
233     * @param rep The repetition index (0-indexed)
234     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
235     */
236    public CWE removeAccessRestrictionReason(int rep) throws HL7Exception { 
237        return (CWE) super.removeRepetition(4, rep);
238    }
239
240
241    /**
242     * Removes a repetition of
243     * ARV-4: "Access Restriction Reason" at a specific index
244     *
245     * @param rep The repetition index (0-indexed)
246     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
247     */
248    public CWE removeArv4_AccessRestrictionReason(int rep) throws HL7Exception { 
249        return (CWE) super.removeRepetition(4, rep);
250    }
251
252
253
254    /**
255     * Returns all repetitions of Special Access Restriction Instructions (ARV-5).
256     */
257    public ST[] getSpecialAccessRestrictionInstructions() {
258        ST[] retVal = this.getTypedField(5, new ST[0]);
259        return retVal;
260    }
261
262
263    /**
264     * Returns all repetitions of Special Access Restriction Instructions (ARV-5).
265     */
266    public ST[] getArv5_SpecialAccessRestrictionInstructions() {
267        ST[] retVal = this.getTypedField(5, new ST[0]);
268        return retVal;
269    }
270
271
272    /**
273     * Returns a count of the current number of repetitions of Special Access Restriction Instructions (ARV-5).
274     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
275     * it will return zero.
276     */
277    public int getSpecialAccessRestrictionInstructionsReps() {
278        return this.getReps(5);
279    }
280
281
282    /**
283     * Returns a specific repetition of
284     * ARV-5: "Special Access Restriction Instructions" - creates it if necessary
285     *
286     * @param rep The repetition index (0-indexed)
287     */
288    public ST getSpecialAccessRestrictionInstructions(int rep) { 
289                ST retVal = this.getTypedField(5, rep);
290                return retVal;
291    }
292
293    /**
294     * Returns a specific repetition of
295     * ARV-5: "Special Access Restriction Instructions" - creates it if necessary
296     *
297     * @param rep The repetition index (0-indexed)
298     */
299    public ST getArv5_SpecialAccessRestrictionInstructions(int rep) { 
300                ST retVal = this.getTypedField(5, rep);
301                return retVal;
302    }
303
304    /**
305     * Returns a count of the current number of repetitions of Special Access Restriction Instructions (ARV-5).
306     * This method does not create a repetition, so if no repetitions have currently been defined or accessed,
307     * it will return zero.
308     */
309    public int getArv5_SpecialAccessRestrictionInstructionsReps() {
310        return this.getReps(5);
311    }
312
313
314    /**
315     * Inserts a repetition of
316     * ARV-5: "Special Access Restriction Instructions" at a specific index
317     *
318     * @param rep The repetition index (0-indexed)
319     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
320     */
321    public ST insertSpecialAccessRestrictionInstructions(int rep) throws HL7Exception { 
322        return (ST) super.insertRepetition(5, rep);
323    }
324
325
326    /**
327     * Inserts a repetition of
328     * ARV-5: "Special Access Restriction Instructions" at a specific index
329     *
330     * @param rep The repetition index (0-indexed)
331     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
332     */
333    public ST insertArv5_SpecialAccessRestrictionInstructions(int rep) throws HL7Exception { 
334        return (ST) super.insertRepetition(5, rep);
335    }
336
337
338    /**
339     * Removes a repetition of
340     * ARV-5: "Special Access Restriction Instructions" at a specific index
341     *
342     * @param rep The repetition index (0-indexed)
343     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
344     */
345    public ST removeSpecialAccessRestrictionInstructions(int rep) throws HL7Exception { 
346        return (ST) super.removeRepetition(5, rep);
347    }
348
349
350    /**
351     * Removes a repetition of
352     * ARV-5: "Special Access Restriction Instructions" at a specific index
353     *
354     * @param rep The repetition index (0-indexed)
355     * @throws HL7Exception If the rep is invalid (below 0, or too high for the allowable repetitions)
356     */
357    public ST removeArv5_SpecialAccessRestrictionInstructions(int rep) throws HL7Exception { 
358        return (ST) super.removeRepetition(5, rep);
359    }
360
361
362
363
364    /**
365     * Returns
366     * ARV-6: "Access Restriction Date Range" - creates it if necessary
367     */
368    public DR getAccessRestrictionDateRange() { 
369                DR retVal = this.getTypedField(6, 0);
370                return retVal;
371    }
372    
373    /**
374     * Returns
375     * ARV-6: "Access Restriction Date Range" - creates it if necessary
376     */
377    public DR getArv6_AccessRestrictionDateRange() { 
378                DR retVal = this.getTypedField(6, 0);
379                return retVal;
380    }
381
382
383
384
385
386    /** {@inheritDoc} */   
387    protected Type createNewTypeWithoutReflection(int field) {
388       switch (field) {
389          case 0: return new SI(getMessage());
390          case 1: return new CNE(getMessage());
391          case 2: return new CWE(getMessage());
392          case 3: return new CWE(getMessage());
393          case 4: return new ST(getMessage());
394          case 5: return new DR(getMessage());
395          default: return null;
396       }
397   }
398
399
400}
401