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 @@
|
||||||
* Update core R5 code to v4.6.0 (breaking changes to questionnaire, concept map, and other resources that are less important to core)
|
* 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)
|
||||||
|
|
||||||
|
|
|
@ -1,39 +1,37 @@
|
||||||
package org.hl7.fhir.r5.model;
|
package org.hl7.fhir.r5.model;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright (c) 2011+, HL7, Inc.
|
Copyright (c) 2011+, HL7, Inc.
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
are permitted provided that the following conditions are met:
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice, this
|
* Redistributions of source code must retain the above copyright notice, this
|
||||||
list of conditions and the following disclaimer.
|
list of conditions and the following disclaimer.
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
this list of conditions and the following disclaimer in the documentation
|
this list of conditions and the following disclaimer in the documentation
|
||||||
and/or other materials provided with the distribution.
|
and/or other materials provided with the distribution.
|
||||||
* Neither the name of HL7 nor the names of its contributors may be used to
|
* Neither the name of HL7 nor the names of its contributors may be used to
|
||||||
endorse or promote products derived from this software without specific
|
endorse or promote products derived from this software without specific
|
||||||
prior written permission.
|
prior written permission.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGE.
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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";
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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