diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 000000000..a4ef5b5ca --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,17 @@ +# Six months, minus 5 days, inactivity before an issue becomes stale +daysUntilStale: 175 +# 5 days of inactivity before a stale issue is closed +daysUntilClose: 5 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed in 5 days if no further activity occurs. Thank you + for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index b47a784c6..d9b47571f 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,6 @@ -* Update core R5 code to v4.6.0 (breaking changes to questionnaire, concept map, and other resources that are less important to core) -* Fix compartment definitions of ListResource.source and subject for R3 and R4 -* Snapshot generator: fix problem checking types on logical models -* Do not flag internal references as suspicious -* XMLParser allows passing a schema location \ No newline at end of file +* Update core R5 code to v4.6.0 (breaking changes to questionnaire, concept map, and other resources that are less important to core) +* Fix compartment definitions of ListResource.source and subject for R3 and R4 +* Snapshot generator: fix problem checking types on logical models +* Do not flag internal references as suspicious +* XMLParser allows passing a schema location +* Issue 484 https://github.com/hapifhir/org.hl7.fhir.core/issues/484 diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/IntegerType.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/IntegerType.java index 136a75f03..e9e69dbb6 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/IntegerType.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/model/IntegerType.java @@ -1,39 +1,37 @@ package org.hl7.fhir.r5.model; -/* - Copyright (c) 2011+, HL7, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * 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 - prior written permission. - - 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 - 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, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - 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, - 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 - POSSIBILITY OF SUCH DAMAGE. - - */ +/* + Copyright (c) 2011+, HL7, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * 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 + prior written permission. + + 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 + 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, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + 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, + 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 + POSSIBILITY OF SUCH DAMAGE. + + */ - -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 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"; + } } \ No newline at end of file diff --git a/org.hl7.fhir.r5/src/test/java/org/hl7/fhir/r5/model/IntegerTypeTest.java b/org.hl7.fhir.r5/src/test/java/org/hl7/fhir/r5/model/IntegerTypeTest.java new file mode 100644 index 000000000..ef01807eb --- /dev/null +++ b/org.hl7.fhir.r5/src/test/java/org/hl7/fhir/r5/model/IntegerTypeTest.java @@ -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()); + } +} \ No newline at end of file