Coverage Report - ca.uhn.hl7v2.conf.classes.abs.AbstractConformanceDataType
 
Classes in this File Line Coverage Branch Coverage Complexity
AbstractConformanceDataType
0%
0/16
0%
0/6
2.75
 
 1  
 /**
 2  
  * The contents of this file are subject to the Mozilla Public License Version 1.1
 3  
  * (the "License"); you may not use this file except in compliance with the License.
 4  
  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
 5  
  * Software distributed under the License is distributed on an "AS IS" basis,
 6  
  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the
 7  
  * specific language governing rights and limitations under the License.
 8  
  *
 9  
  * The Original Code is "AbstractConformanceDataType.java".  Description:
 10  
  * "This class contains the functionality for a Data Type in the Conformance class set"
 11  
  *
 12  
  * The Initial Developer of the Original Code is University Health Network. Copyright (C)
 13  
  * 2001.  All Rights Reserved.
 14  
  *
 15  
  * Contributor(s): James Agnew
 16  
  * Paul Brohman
 17  
  * Mitch Delachevrotiere
 18  
  * Shawn Dyck
 19  
  * Cory Metcalf
 20  
  *
 21  
  * Alternatively, the contents of this file may be used under the terms of the
 22  
  * GNU General Public License (the "GPL"), in which case the provisions of the GPL are
 23  
  * applicable instead of those above.  If you wish to allow use of your version of this
 24  
  * file only under the terms of the GPL and not to allow others to use your version
 25  
  * of this file under the MPL, indicate your decision by deleting  the provisions above
 26  
  * and replace  them with the notice and other provisions required by the GPL License.
 27  
  * If you do not delete the provisions above, a recipient may use your version of
 28  
  * this file under either the MPL or the GPL.
 29  
  *
 30  
  */
 31  
 
 32  
 package ca.uhn.hl7v2.conf.classes.abs;
 33  
 
 34  
 import org.slf4j.Logger;
 35  
 import org.slf4j.LoggerFactory;
 36  
 
 37  
 import ca.uhn.hl7v2.conf.classes.exceptions.ConfDataException;
 38  
 import ca.uhn.hl7v2.model.DataTypeException;
 39  
 import ca.uhn.hl7v2.model.Primitive;
 40  
 
 41  
 /** This class contains the functionality for a Data Type in the Conformance class set
 42  
  * @author <table><tr>James Agnew</tr>
 43  
  *                <tr>Paul Brohman</tr>
 44  
  *                <tr>Mitch Delachevrotiere</tr>
 45  
  *                <tr>Shawn Dyck</tr>
 46  
  *                   <tr>Cory Metcalf</tr></table>
 47  
  */
 48  
 public abstract class AbstractConformanceDataType {
 49  
         
 50  0
         private static final Logger log = LoggerFactory.getLogger(AbstractConformanceDataType.class);
 51  
     
 52  
     private Primitive hapiPrimitive;
 53  
     
 54  
     /** Constructor for AbstractConformanceDataType
 55  
      * @param hapiPrimitive the underlying primitive that the extending class represents
 56  
      */
 57  0
     public AbstractConformanceDataType(Primitive hapiPrimitive) {
 58  0
         this.hapiPrimitive = hapiPrimitive;
 59  
         
 60  
         try {
 61  0
             if ( getConstantValue() != null )
 62  0
                 setValue( getConstantValue() );
 63  0
         } catch ( ConfDataException e ) {
 64  0
                         log.error( "Could not enforce constant value.", e );
 65  0
         }
 66  0
     }
 67  
     
 68  
     /** This method returns the constant value for the extending class.
 69  
      *  @return the constant value
 70  
      */
 71  
     public abstract String getConstantValue();
 72  
     
 73  
     /** This method returns the Maximum length of the extending object.
 74  
      *  @return the maximum length
 75  
      */
 76  
     public abstract long getMaxLength();
 77  
     
 78  
     /** This method validates the <code>String</code> value passed in to be no greater then the
 79  
      * maximum allowable length for the extending class.  If the <code>String</code> value is valid, this
 80  
      * method will set the underlying HAPI class's value. If the data passed in is invalid for the given
 81  
      * data type, a ConfDataException is thrown.
 82  
      * @throws ConformaceException
 83  
      * @param value the value of the Data Type
 84  
      */
 85  
     protected void setValue(java.lang.String value) throws ConfDataException {
 86  0
         if ((this.getMaxLength() > 0)
 87  
         && (value.length() > this.getMaxLength())) {
 88  0
             throw new ConfDataException("DataType length exceeds the Maximum allowable length");
 89  
         }
 90  
         
 91  
         try {
 92  0
             this.hapiPrimitive.setValue(value);
 93  0
         } catch (DataTypeException e) {
 94  0
             throw new ConfDataException("Invalid Data Populated");
 95  0
         }
 96  0
     }
 97  
     
 98  
 }