001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017package ca.uhn.fhir.model.dstu2.composite;
018
019import java.net.URI;
020import java.math.BigDecimal;
021import org.apache.commons.lang3.StringUtils;
022import java.util.*;
023import ca.uhn.fhir.model.api.*;
024import ca.uhn.fhir.model.primitive.*;
025import ca.uhn.fhir.model.api.annotation.*;
026import ca.uhn.fhir.model.base.composite.*;
027
028import ca.uhn.fhir.model.dstu2.valueset.AddressTypeEnum;
029import ca.uhn.fhir.model.dstu2.valueset.AddressUseEnum;
030import ca.uhn.fhir.model.dstu2.valueset.AggregationModeEnum;
031import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum;
032import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
033import ca.uhn.fhir.model.dstu2.composite.CodingDt;
034import ca.uhn.fhir.model.dstu2.valueset.ConstraintSeverityEnum;
035import ca.uhn.fhir.model.dstu2.valueset.ContactPointSystemEnum;
036import ca.uhn.fhir.model.dstu2.valueset.ContactPointUseEnum;
037import ca.uhn.fhir.model.dstu2.resource.Device;
038import ca.uhn.fhir.model.dstu2.valueset.EventTimingEnum;
039import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum;
040import ca.uhn.fhir.model.dstu2.valueset.IdentifierUseEnum;
041import ca.uhn.fhir.model.dstu2.valueset.NameUseEnum;
042import ca.uhn.fhir.model.dstu2.resource.Organization;
043import ca.uhn.fhir.model.dstu2.resource.Patient;
044import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
045import ca.uhn.fhir.model.dstu2.resource.Practitioner;
046import ca.uhn.fhir.model.dstu2.valueset.PropertyRepresentationEnum;
047import ca.uhn.fhir.model.dstu2.valueset.QuantityComparatorEnum;
048import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
049import ca.uhn.fhir.model.dstu2.composite.RangeDt;
050import ca.uhn.fhir.model.dstu2.resource.RelatedPerson;
051import ca.uhn.fhir.model.dstu2.valueset.SignatureTypeCodesEnum;
052import ca.uhn.fhir.model.dstu2.valueset.SlicingRulesEnum;
053import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
054import ca.uhn.fhir.model.dstu2.valueset.TimingAbbreviationEnum;
055import ca.uhn.fhir.model.dstu2.valueset.UnitsOfTimeEnum;
056import ca.uhn.fhir.model.dstu2.resource.ValueSet;
057import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt;
058import ca.uhn.fhir.model.dstu2.composite.DurationDt;
059import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
060import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt;
061import ca.uhn.fhir.model.primitive.Base64BinaryDt;
062import ca.uhn.fhir.model.primitive.BooleanDt;
063import ca.uhn.fhir.model.primitive.BoundCodeDt;
064import ca.uhn.fhir.model.primitive.CodeDt;
065import ca.uhn.fhir.model.primitive.DateTimeDt;
066import ca.uhn.fhir.model.primitive.DecimalDt;
067import ca.uhn.fhir.model.primitive.IdDt;
068import ca.uhn.fhir.model.primitive.InstantDt;
069import ca.uhn.fhir.model.primitive.IntegerDt;
070import ca.uhn.fhir.model.primitive.MarkdownDt;
071import ca.uhn.fhir.model.primitive.PositiveIntDt;
072import ca.uhn.fhir.model.primitive.StringDt;
073import ca.uhn.fhir.model.primitive.UnsignedIntDt;
074import ca.uhn.fhir.model.primitive.UriDt;
075
076/**
077 * HAPI/FHIR <b>AnnotationDt</b> Datatype
078 * ()
079 *
080 * <p>
081 * <b>Definition:</b>
082 * A  text note which also  contains information about who made the statement and when
083 * </p> 
084 *
085 * <p>
086 * <b>Requirements:</b>
087 * 
088 * </p> 
089 */
090@DatatypeDef(name="Annotation") 
091public class AnnotationDt
092        extends  BaseIdentifiableElement  
093        implements ICompositeDatatype 
094{
095
096        /**
097         * Constructor
098         */
099        public AnnotationDt() {
100                // nothing
101        }
102
103
104        @Child(name="author", order=0, min=0, max=1, summary=true, modifier=false, type={
105                Practitioner.class, 
106                Patient.class, 
107                RelatedPerson.class, 
108                StringDt.class
109        })
110        @Description(
111                shortDefinition="",
112                formalDefinition="The individual responsible for making the annotation."
113        )
114        private IDatatype myAuthor;
115        
116        @Child(name="time", type=DateTimeDt.class, order=1, min=0, max=1, summary=true, modifier=false) 
117        @Description(
118                shortDefinition="",
119                formalDefinition="Indicates when this particular annotation was made"
120        )
121        private DateTimeDt myTime;
122        
123        @Child(name="text", type=StringDt.class, order=2, min=1, max=1, summary=true, modifier=false)   
124        @Description(
125                shortDefinition="",
126                formalDefinition="The text of the annotation"
127        )
128        private StringDt myText;
129        
130
131        @Override
132        public boolean isEmpty() {
133                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myAuthor,  myTime,  myText);
134        }
135        
136        @Override
137        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
138                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myAuthor, myTime, myText);
139        }
140
141        /**
142         * Gets the value(s) for <b>author[x]</b> ().
143         * creating it if it does
144         * not exist. Will not return <code>null</code>.
145         *
146     * <p>
147     * <b>Definition:</b>
148     * The individual responsible for making the annotation.
149     * </p> 
150         */
151        public IDatatype getAuthor() {  
152                return myAuthor;
153        }
154
155        /**
156         * Sets the value(s) for <b>author[x]</b> ()
157         *
158     * <p>
159     * <b>Definition:</b>
160     * The individual responsible for making the annotation.
161     * </p> 
162         */
163        public AnnotationDt setAuthor(IDatatype theValue) {
164                myAuthor = theValue;
165                return this;
166        }
167        
168        
169
170  
171        /**
172         * Gets the value(s) for <b>time</b> ().
173         * creating it if it does
174         * not exist. Will not return <code>null</code>.
175         *
176     * <p>
177     * <b>Definition:</b>
178     * Indicates when this particular annotation was made
179     * </p> 
180         */
181        public DateTimeDt getTimeElement() {  
182                if (myTime == null) {
183                        myTime = new DateTimeDt();
184                }
185                return myTime;
186        }
187
188        
189        /**
190         * Gets the value(s) for <b>time</b> ().
191         * creating it if it does
192         * not exist. This method may return <code>null</code>.
193         *
194     * <p>
195     * <b>Definition:</b>
196     * Indicates when this particular annotation was made
197     * </p> 
198         */
199        public Date getTime() {  
200                return getTimeElement().getValue();
201        }
202
203        /**
204         * Sets the value(s) for <b>time</b> ()
205         *
206     * <p>
207     * <b>Definition:</b>
208     * Indicates when this particular annotation was made
209     * </p> 
210         */
211        public AnnotationDt setTime(DateTimeDt theValue) {
212                myTime = theValue;
213                return this;
214        }
215        
216        
217
218        /**
219         * Sets the value for <b>time</b> ()
220         *
221     * <p>
222     * <b>Definition:</b>
223     * Indicates when this particular annotation was made
224     * </p> 
225         */
226        public AnnotationDt setTime( Date theDate,  TemporalPrecisionEnum thePrecision) {
227                myTime = new DateTimeDt(theDate, thePrecision); 
228                return this; 
229        }
230
231        /**
232         * Sets the value for <b>time</b> ()
233         *
234     * <p>
235     * <b>Definition:</b>
236     * Indicates when this particular annotation was made
237     * </p> 
238         */
239        public AnnotationDt setTimeWithSecondsPrecision( Date theDate) {
240                myTime = new DateTimeDt(theDate); 
241                return this; 
242        }
243
244 
245        /**
246         * Gets the value(s) for <b>text</b> ().
247         * creating it if it does
248         * not exist. Will not return <code>null</code>.
249         *
250     * <p>
251     * <b>Definition:</b>
252     * The text of the annotation
253     * </p> 
254         */
255        public StringDt getTextElement() {  
256                if (myText == null) {
257                        myText = new StringDt();
258                }
259                return myText;
260        }
261
262        
263        /**
264         * Gets the value(s) for <b>text</b> ().
265         * creating it if it does
266         * not exist. This method may return <code>null</code>.
267         *
268     * <p>
269     * <b>Definition:</b>
270     * The text of the annotation
271     * </p> 
272         */
273        public String getText() {  
274                return getTextElement().getValue();
275        }
276
277        /**
278         * Sets the value(s) for <b>text</b> ()
279         *
280     * <p>
281     * <b>Definition:</b>
282     * The text of the annotation
283     * </p> 
284         */
285        public AnnotationDt setText(StringDt theValue) {
286                myText = theValue;
287                return this;
288        }
289        
290        
291
292        /**
293         * Sets the value for <b>text</b> ()
294         *
295     * <p>
296     * <b>Definition:</b>
297     * The text of the annotation
298     * </p> 
299         */
300        public AnnotationDt setText( String theString) {
301                myText = new StringDt(theString); 
302                return this; 
303        }
304
305 
306
307
308}