Add a new date/time setter and update documentation

This commit is contained in:
James Agnew 2014-11-19 11:29:33 -05:00
parent 9d4a56bf47
commit 74b15e2295
8 changed files with 101 additions and 16 deletions

View File

@ -138,14 +138,22 @@ public abstract class BaseDateTimeDt extends BasePrimitive<Date> {
/**
* Gets the precision for this datatype using field values from {@link Calendar}, such as {@link Calendar#MONTH}. Default is {@link Calendar#DAY_OF_MONTH}
* Gets the precision for this datatype (using the default for the given type if not set)
*
* @see #setPrecision(int)
* @see #setPrecision(TemporalPrecisionEnum)
*/
public TemporalPrecisionEnum getPrecision() {
if (myPrecision == null) {
return getDefaultPrecisionForDatatype();
}
return myPrecision;
}
/**
* Returns the default precision for the given datatype
*/
protected abstract TemporalPrecisionEnum getDefaultPrecisionForDatatype();
/**
* Returns the TimeZone associated with this dateTime's value. May return
* <code>null</code> if no timezone was supplied.
@ -337,11 +345,24 @@ public abstract class BaseDateTimeDt extends BasePrimitive<Date> {
}
@Override
public void setValue(Date theValue) throws DataFormatException {
public void setValue(Date theValue) {
clearTimeZone();
super.setValue(theValue);
}
/**
* Sets the value of this date/time using the specified level of precision
*
* @param theValue The date value
* @param thePrecision The precision
* @throws DataFormatException
*/
public void setValue(Date theValue, TemporalPrecisionEnum thePrecision) throws DataFormatException {
clearTimeZone();
super.setValue(theValue);
myPrecision = thePrecision;
}
@Override
public void setValueAsString(String theValue) throws DataFormatException {
clearTimeZone();

View File

@ -76,4 +76,14 @@ public class DateDt extends BaseDateTimeDt {
}
}
/**
* Returns the default precision for this datatype
*
* @see #DEFAULT_PRECISION
*/
@Override
protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() {
return DEFAULT_PRECISION;
}
}

View File

@ -98,4 +98,15 @@ public class DateTimeDt extends BaseDateTimeDt {
return new DateTimeDt(new Date(), TemporalPrecisionEnum.SECOND);
}
/**
* Returns the default precision for this datatype
*
* @see #DEFAULT_PRECISION
*/
@Override
protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() {
return DEFAULT_PRECISION;
}
}

View File

@ -160,4 +160,15 @@ public class InstantDt extends BaseDateTimeDt {
return new InstantDt(new Date(), TemporalPrecisionEnum.MILLI);
}
/**
* Returns the default precision for this datatype
*
* @see #DEFAULT_PRECISION
*/
@Override
protected TemporalPrecisionEnum getDefaultPrecisionForDatatype() {
return DEFAULT_PRECISION;
}
}

View File

@ -28,7 +28,7 @@
<scope>provided</scope>
</dependency>
<!-- Testing -->
<!-- Testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
@ -303,6 +303,17 @@
</plugin>
</plugins>
</pluginManagement>
<resources>
<resource>
<directory>${baseDir}/src/main/resources</directory>
</resource>
<resource>
<directory>${baseDir}/target/generated-sources/tinder</directory>
</resource>
<resource>
<directory>${baseDir}/target/generated-resources/tinder</directory>
</resource>
</resources>
</build>
</project>

View File

@ -29,6 +29,7 @@ import ca.uhn.fhir.model.api.Bundle;
import ca.uhn.fhir.model.api.IResource;
import ca.uhn.fhir.model.dstu.composite.HumanNameDt;
import ca.uhn.fhir.model.dstu.composite.IdentifierDt;
import ca.uhn.fhir.model.dstu.resource.Organization;
import ca.uhn.fhir.model.dstu.resource.Patient;
import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
import ca.uhn.fhir.model.primitive.IdDt;
@ -236,11 +237,13 @@ public class ServerFeaturesTest {
assertEquals(200, status.getStatusLine().getStatusCode());
Bundle bundle = servlet.getFhirContext().newXmlParser().parseBundle(responseContent);
assertEquals(1,bundle.size());
assertEquals(2,bundle.size());
assertEquals("http://absolute.com/Patient/123", bundle.getEntries().get(0).getId().getValue());
assertEquals("http://absolute.com/Patient/123/_history/22", bundle.getEntries().get(0).getLinkSelf().getValue());
assertEquals("http://foo.com/Organization/222",bundle.getEntries().get(1).getId().getValue());
assertEquals("http://foo.com/Organization/222/_history/333",bundle.getEntries().get(1).getLinkSelf().getValue());
}
@Test
@ -370,6 +373,11 @@ public class ServerFeaturesTest {
Patient p = new Patient();
p.addIdentifier().setSystem("foo");
p.setId("http://absolute.com/Patient/123/_history/22");
Organization o = new Organization();
o.setId("http://foo.com/Organization/222/_history/333");
p.getManagingOrganization().setResource(o);
return Collections.singletonList(p);
}

View File

@ -1,11 +0,0 @@
package ca.uhn.fhir.example;
public class Example01 {
public static void main(String[] theArgs) {
}
}

View File

@ -0,0 +1,24 @@
package ca.uhn.fhir.example;
import ca.uhn.fhir.model.dstu.composite.HumanNameDt;
import ca.uhn.fhir.model.dstu.composite.IdentifierDt;
import ca.uhn.fhir.model.dstu.resource.Patient;
@SuppressWarnings("unused")
public class Example01_CreateAPatient {
public static void main(String[] theArgs) {
Patient pat = new Patient();
IdentifierDt identifier = pat.addIdentifier();
identifier.setSystem("http://acme.org/MRNs").setValue("7000135");
HumanNameDt name = pat.addName();
name.addFamily("Simpson").addGiven("Homer").addGiven("J");
pat.getBirthDate().set
}
}