Issue 484 (#485)
* added Integer argument constructor for IntegerType class. * Updating release notes
This commit is contained in:
parent
f60434ef79
commit
f14ef6d83f
|
@ -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)
|
||||
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue