/** * The contents of this file are subject to the Mozilla Public License Version 1.1 * (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.mozilla.org/MPL/ * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the * specific language governing rights and limitations under the License. * * The Original Code is "TM.java". Description: * "Represents an HL7 TM (time) datatype." * * The Initial Developer of the Original Code is University Health Network. Copyright (C) * 2005. All Rights Reserved. * * Contributor(s): ______________________________________. * * Alternatively, the contents of this file may be used under the terms of the * GNU General Public License (the “GPL”), in which case the provisions of the GPL are * applicable instead of those above. If you wish to allow use of your version of this * file only under the terms of the GPL and not to allow others to use your version * of this file under the MPL, indicate your decision by deleting the provisions above * and replace them with the notice and other provisions required by the GPL License. * If you do not delete the provisions above, a recipient may use your version of * this file under either the MPL or the GPL. */ package ca.uhn.hl7v2.model.primitive; import ca.uhn.hl7v2.model.AbstractPrimitive; import ca.uhn.hl7v2.model.DataTypeException; import ca.uhn.hl7v2.model.Message; /** * Represents an HL7 TM (time) datatype. * * @author Neal Acharya * @author Bryan Tripp * @version $Revision: 1.1 $ updated on $Date: 2007/02/19 02:24:51 $ by $Author: jamesagnew $ */ public abstract class TM extends AbstractPrimitive { private CommonTM myDetail; /** * @param theMessage message to which this Type belongs */ public TM(Message theMessage) { super(theMessage); } private CommonTM getDetail() throws DataTypeException { if (myDetail == null) { myDetail = new CommonTM(getValue()); } return myDetail; } /** * @see AbstractPrimitive#setValue(java.lang.String) * @throws DataTypeException if the value is incorrectly formatted and either validation is * enabled for this primitive or detail setters / getters have been called, forcing further * parsing. */ public void setValue(String theValue) throws DataTypeException { super.setValue(theValue); if (myDetail != null) { myDetail.setValue(theValue); } } /** * @see AbstractPrimitive#getValue */ public String getValue() { String result = super.getValue(); if (myDetail != null) { result = myDetail.getValue(); } return result; } /** * @see CommonTM#setHourPrecision(int) * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public void setHourPrecision(int hr) throws DataTypeException { getDetail().setHourPrecision(hr); } /** * @see CommonTM#setHourMinutePrecision(int, int) * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public void setHourMinutePrecision(int hr, int min) throws DataTypeException { getDetail().setHourMinutePrecision(hr,min); } /** * @see CommonTM#setHourMinSecondPrecision(int, int, float) * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public void setHourMinSecondPrecision(int hr, int min, float sec) throws DataTypeException { getDetail().setHourMinSecondPrecision(hr,min,sec); } /** * @see CommonTM#setOffset(int) * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public void setOffset(int signedOffset) throws DataTypeException { getDetail().setOffset(signedOffset); } /** * Returns the hour as an integer. * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public int getHour() throws DataTypeException { return getDetail().getHour(); } /** * Returns the minute as an integer. * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public int getMinute() throws DataTypeException { return getDetail().getMinute(); } /** * Returns the second as an integer. * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public int getSecond() throws DataTypeException { return getDetail().getSecond(); } /** * Returns the fractional second value as a float. * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public float getFractSecond() throws DataTypeException { return getDetail().getFractSecond(); } /** * Returns the GMT offset value as an integer. * @throws DataTypeException if the value is incorrectly formatted. If validation is enabled, this * exception should be thrown at setValue(), but if not, detailed parsing may be deferred until * this method is called. */ public int getGMTOffset() throws DataTypeException { return getDetail().getGMTOffset(); } }