Skip to content

Commit 56fbbf1

Browse files
committed
Changed handling of bad data level (#252)
1 parent bcb7b47 commit 56fbbf1

File tree

5 files changed

+9
-15
lines changed

5 files changed

+9
-15
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## NAACCR XML Version History
22

3+
**Version 10.2**
4+
5+
- Changed data level errors from an exception to a validation error reported on the item.
6+
37
**Version 10.1**
48

59
- Optimized read SAS macro.

src/main/java/com/imsweb/naaccrxml/NaaccrErrorUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ private NaaccrErrorUtils() {
2020
public static final String CODE_BAD_LINE_LENGTH = "Invalid line length";
2121
public static final String CODE_BAD_NAACCR_ID = "Unknown NAACCR ID";
2222
public static final String CODE_BAD_NAACCR_NUM = "Wrong NAACCR Number";
23+
public static final String CODE_BAD_DATA_LEVEL = "Invalid data level";
2324
public static final String CODE_VAL_TOO_LONG = "Value too long";
2425
public static final String CODE_VAL_TOO_SHORT = "Value too short";
2526
public static final String CODE_VAL_DATA_TYPE = "Value invalid for data type";
@@ -36,6 +37,7 @@ private NaaccrErrorUtils() {
3637
_MESSAGES.put(CODE_BAD_LINE_LENGTH, "invalid line length, expected ${0} but got ${1}");
3738
_MESSAGES.put(CODE_BAD_NAACCR_ID, "unknown NAACCR ID: ${0}");
3839
_MESSAGES.put(CODE_BAD_NAACCR_NUM, "NAACCR Number '${0}' does not correspond to NAACCR ID '${1}'");
40+
_MESSAGES.put(CODE_BAD_DATA_LEVEL, "invalid data level, expected ${0} but got ${1}");
3941
_MESSAGES.put(CODE_VAL_TOO_LONG, "value too long, expected at most ${0} character(s) but got ${1}");
4042
_MESSAGES.put(CODE_VAL_TOO_SHORT, "value too short, expected exactly ${0} character(s) but got ${1}");
4143
_MESSAGES.put(CODE_VAL_DATA_TYPE, "invalid value according to data type '${0}'");

src/main/java/com/imsweb/naaccrxml/runtime/NaaccrPatientConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ else if (NaaccrXmlDictionaryUtils.NAACCR_PADDING_RIGHT_ZERO.equals(itemDef.getPa
244244
value = StringUtils.rightPad(value, itemDef.getLength(), '0');
245245
}
246246
else if (!NaaccrXmlDictionaryUtils.NAACCR_PADDING_LEFT_BLANK.equals(itemDef.getPadding()) && !NaaccrXmlDictionaryUtils.NAACCR_PADDING_RIGHT_BLANK.equals(itemDef.getPadding())
247-
&& !NaaccrXmlDictionaryUtils.NAACCR_PADDING_NONE.equals(itemDef.getPadding()))
247+
&& !NaaccrXmlDictionaryUtils.NAACCR_PADDING_NONE.equals(itemDef.getPadding()))
248248
throw new IllegalStateException("Unknown padding option: " + itemDef.getPadding());
249249
}
250250

@@ -356,7 +356,7 @@ else if (def.getDataType() != null) {
356356
if (NaaccrXmlUtils.NAACCR_XML_TAG_PATIENT.equals(parentTag) && NaaccrXmlDictionaryUtils.getPatToTumorChangedNaaccr18And21Ids().contains(rawId))
357357
return item;
358358

359-
reportSyntaxError("invalid parent XML tag for '" + def.getNaaccrId() + "'; was expecting '" + def.getParentXmlElement() + "' but got '" + parentTag + "'");
359+
reportError(item, lineNumber, currentPath, def, item.getValue(), NaaccrErrorUtils.CODE_BAD_DATA_LEVEL, def.getParentXmlElement(), parentTag);
360360
}
361361
}
362362

src/test/java/com/imsweb/naaccrxml/XsdSchemaTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class XsdSchemaTest {
3838
private static final String _XSD_FILE = "xsd/naaccr_data_1.7.xsd";
3939

4040
@Test
41+
@SuppressWarnings("resource")
4142
public void testXsdAgainstLibrary() throws IOException {
4243
Path dir = Paths.get(TestingUtils.getWorkingDirectory() + "/src/test/resources/data/validity");
4344

src/test/resources/data/validity/invalid_library_only/invalid_bad-data-item-1.xml

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)