Issue 484 (#485)

* added Integer argument constructor for IntegerType class.

* Updating release notes
This commit is contained in:
Mark Iantorno 2021-05-04 11:21:57 -04:00 committed by GitHub
parent f60434ef79
commit f14ef6d83f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 120 additions and 90 deletions

View File

@ -1 +1,3 @@
* Issue 484 https://github.com/hapifhir/org.hl7.fhir.core/issues/484
* Update core R5 code to v4.6.0 (breaking changes to questionnaire, concept map, and other resources that are less important to core) * Update core R5 code to v4.6.0 (breaking changes to questionnaire, concept map, and other resources that are less important to core)

View File

@ -30,10 +30,8 @@ package org.hl7.fhir.r5.model;
*/ */
import org.hl7.fhir.instance.model.api.IBaseIntegerDatatype;
import ca.uhn.fhir.model.api.annotation.DatatypeDef; import ca.uhn.fhir.model.api.annotation.DatatypeDef;
import org.hl7.fhir.instance.model.api.IBaseIntegerDatatype;
/** /**
* Primitive type "integer" in FHIR: A signed 32-bit integer * Primitive type "integer" in FHIR: A signed 32-bit integer
@ -41,72 +39,78 @@ import ca.uhn.fhir.model.api.annotation.DatatypeDef;
@DatatypeDef(name = "integer") @DatatypeDef(name = "integer")
public class IntegerType extends PrimitiveType<Integer> implements IBaseIntegerDatatype { public class IntegerType extends PrimitiveType<Integer> implements IBaseIntegerDatatype {
private static final long serialVersionUID = 3L; private static final long serialVersionUID = 3L;
/** /**
* Constructor * Constructor
*/ */
public IntegerType() { public IntegerType() {
// nothing // nothing
} }
/** /**
* Constructor * Constructor
*/ */
public IntegerType(int theInteger) { public IntegerType(int theInteger) {
setValue(theInteger); setValue(theInteger);
} }
/** /**
* Constructor * Constructor
* */
* @param theIntegerAsString public IntegerType(Integer theInteger) {
* A string representation of an integer setValue(theInteger);
* @throws IllegalArgumentException }
* If the string is not a valid integer representation
*/
public IntegerType(String theIntegerAsString) {
setValueAsString(theIntegerAsString);
}
/** /**
* Constructor * Constructor
* *
* @param theValue The value * @param theIntegerAsString A string representation of an integer
* @throws IllegalArgumentException If the value is too large to fit in a signed integer * @throws IllegalArgumentException If the string is not a valid integer representation
*/ */
public IntegerType(Long theValue) { public IntegerType(String theIntegerAsString) {
if (theValue < java.lang.Integer.MIN_VALUE || theValue > java.lang.Integer.MAX_VALUE) { setValueAsString(theIntegerAsString);
throw new IllegalArgumentException }
(theValue + " cannot be cast to int without changing its value.");
}
if(theValue!=null) {
setValue((int)theValue.longValue());
}
}
@Override /**
protected Integer parse(String theValue) { * Constructor
try { *
return Integer.parseInt(theValue); * @param theValue The value
} catch (NumberFormatException e) { * @throws IllegalArgumentException If the value is too large to fit in a signed integer
throw new IllegalArgumentException(e); */
} public IntegerType(Long theValue) {
} if (theValue < java.lang.Integer.MIN_VALUE || theValue > java.lang.Integer.MAX_VALUE) {
throw new IllegalArgumentException
(theValue + " cannot be cast to int without changing its value.");
}
if (theValue != null) {
setValue((int) theValue.longValue());
}
}
@Override @Override
protected String encode(Integer theValue) { protected Integer parse(String theValue) {
return Integer.toString(theValue); try {
} return Integer.parseInt(theValue);
} catch (NumberFormatException e) {
throw new IllegalArgumentException(e);
}
}
@Override @Override
public IntegerType copy() { protected String encode(Integer theValue) {
IntegerType ret = new IntegerType(getValue()); return Integer.toString(theValue);
}
@Override
public IntegerType copy() {
// IntegerType ret = getValue() == null ? new IntegerType() : new IntegerType(getValue());
IntegerType ret = new IntegerType(getValue());
copyValues(ret); copyValues(ret);
return ret; return ret;
} }
public String fhirType() { public String fhirType() {
return "integer"; return "integer";
} }
} }

View File

@ -0,0 +1,24 @@
package org.hl7.fhir.r5.model;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
class IntegerTypeTest {
@Test
@DisplayName("Test that non-initialized Integer value doesn't cause crash on copy()")
public void testNullIntegerType() {
IntegerType intType = new IntegerType();
IntegerType intType2 = intType.copy();
Assertions.assertNull(intType2.getValue());
}
@Test
@DisplayName("Test that initialized with null Integer value doesn't cause crash on copy()")
public void testNullIntegerTypeString() {
IntegerType intType = new IntegerType((String) null);
IntegerType intType2 = intType.copy();
Assertions.assertNull(intType2.getValue());
}
}