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)

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 org.hl7.fhir.instance.model.api.IBaseIntegerDatatype;
/**
* 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")
public class IntegerType extends PrimitiveType<Integer> implements IBaseIntegerDatatype {
private static final long serialVersionUID = 3L;
private static final long serialVersionUID = 3L;
/**
* Constructor
*/
public IntegerType() {
// nothing
}
/**
* Constructor
*/
public IntegerType() {
// nothing
}
/**
* Constructor
*/
public IntegerType(int theInteger) {
setValue(theInteger);
}
/**
* Constructor
*/
public IntegerType(int theInteger) {
setValue(theInteger);
}
/**
* Constructor
*
* @param theIntegerAsString
* A string representation of an integer
* @throws IllegalArgumentException
* If the string is not a valid integer representation
*/
public IntegerType(String theIntegerAsString) {
setValueAsString(theIntegerAsString);
}
/**
* Constructor
*/
public IntegerType(Integer theInteger) {
setValue(theInteger);
}
/**
* Constructor
*
* @param theValue The value
* @throws IllegalArgumentException If the value is too large to fit in a signed integer
*/
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());
}
}
/**
* Constructor
*
* @param theIntegerAsString A string representation of an integer
* @throws IllegalArgumentException If the string is not a valid integer representation
*/
public IntegerType(String theIntegerAsString) {
setValueAsString(theIntegerAsString);
}
@Override
protected Integer parse(String theValue) {
try {
return Integer.parseInt(theValue);
} catch (NumberFormatException e) {
throw new IllegalArgumentException(e);
}
}
/**
* Constructor
*
* @param theValue The value
* @throws IllegalArgumentException If the value is too large to fit in a signed integer
*/
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
protected String encode(Integer theValue) {
return Integer.toString(theValue);
}
@Override
protected Integer parse(String theValue) {
try {
return Integer.parseInt(theValue);
} catch (NumberFormatException e) {
throw new IllegalArgumentException(e);
}
}
@Override
public IntegerType copy() {
IntegerType ret = new IntegerType(getValue());
@Override
protected String encode(Integer theValue) {
return Integer.toString(theValue);
}
@Override
public IntegerType copy() {
// IntegerType ret = getValue() == null ? new IntegerType() : new IntegerType(getValue());
IntegerType ret = new IntegerType(getValue());
copyValues(ret);
return ret;
}
}
public String fhirType() {
return "integer";
}
public String fhirType() {
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());
}
}