Skip to content

Commit

Permalink
Updating the reports on enumerations: A new enumeration (a subset of …
Browse files Browse the repository at this point in the history
…values) is a restriction and equally the removal of an enumeration is an extension. Aside of these edge cases, a larger enumeration is always an extension and a smaller a restriction of the grammar.
  • Loading branch information
svanteschubert committed May 5, 2023
1 parent 8f49896 commit ef39882
Show file tree
Hide file tree
Showing 10 changed files with 21 additions and 266 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -213,8 +213,10 @@ private void createChangeMessage(Change c){
c.setReportHeader(c.getReportHeader() + "\n\t\tChanged enumeration from " + c.oldNode.getEnumeration() + " to " + c.newNode.getEnumeration());
ArrayList<String> newEnumerationList = new ArrayList<>(c.newNode.getEnumeration());
boolean isFixedDefaultByEnumeration = newEnumerationList.size() == 1;
newEnumerationList.removeAll(c.oldNode.getEnumeration());
if(newEnumerationList.size() > 0){
if(c.oldNode.getEnumeration() != null) {
newEnumerationList.removeAll(c.oldNode.getEnumeration());
}
if(c.oldNode.getEnumeration() == null || newEnumerationList.size() > 0){
c.setReportHeader(c.getReportHeader() + "\n\t\t\tadded: " + newEnumerationList.toString());
if(isFixedDefaultByEnumeration) {// if single enumeration (new)
if (c.oldNode.getFixedValue() != null && c.oldNode.getFixedValue().equals(newEnumerationList.get(0))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ private void createChangeMessage(Change c){
boolean isFixedDefaultByEnumeration = newEnumerationList.size() == 1;
newEnumerationList.removeAll(c.oldNode.getEnumeration());
// an enumeration is a restriction of the set of strings
// so there have to be some enumeration earlier and if the new enumeration list is longer (it is an extension)
// so to be an extension there have to be some enumeration earlier and if the new enumeration list is longer (it is an extension)
if((c.oldNode.getEnumeration() != null && c.oldNode.getEnumeration().size() > 0) && newEnumerationList.size() > 0){
getModificationStringBuilder().append("\n\t\tExtended enumeration from " + c.oldNode.getEnumeration() + " to " + c.newNode.getEnumeration() +
"\n\t\t\tadded: " + newEnumerationList.toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,19 @@ private void createChangeMessage(Change c){
getModificationStringBuilder().append("\n\t\tChanged fractionDigits from " + c.oldNode.getFractionDigits() + " to " + c.newNode.getFractionDigits());
}
if (c.isEnumerationChanged()) {
ArrayList<String> oldEnumerationList = new ArrayList<>(c.oldNode.getEnumeration());
boolean wasFixedDefaultByEnumeration = oldEnumerationList.size() == 1;
oldEnumerationList.removeAll(c.newNode.getEnumeration());


ArrayList<String> oldEnumerationList = null;
boolean wasFixedDefaultByEnumeration = false;
if(c.oldNode.getEnumeration() != null) {
oldEnumerationList = new ArrayList<>(c.oldNode.getEnumeration());
wasFixedDefaultByEnumeration = oldEnumerationList.size() == 1;
oldEnumerationList.removeAll(c.newNode.getEnumeration());
}
// an enumeration is a restriction of the set of strings
// either enumeration old list was longer or did not exist at all
if(oldEnumerationList.size() > 0 || (c.oldNode.getEnumeration() == null || c.oldNode.getEnumeration().size() == 0)){
if(oldEnumerationList.size() > 0){
// either enumeration old list was longer (and now shorter being restricted) or did not exist at all (and the new existence is a restriction by the set of values)
if(c.oldNode.getEnumeration() == null || oldEnumerationList.size() > 0 && (c.newNode.getEnumeration() != null && c.newNode.getEnumeration().size() > 0) || c.oldNode.getEnumeration().size() == 0){
if(c.oldNode.getEnumeration() != null && oldEnumerationList.size() > 0){
getModificationStringBuilder().append("\n\t\tNarrowed enumeration from " + c.oldNode.getEnumeration() + " to " + c.newNode.getEnumeration() +
"\n\t\t\tremoved: " + oldEnumerationList.toString());
}else{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,10 @@ private void createChangeMessage(Change c){
c.setReportHeader(c.getReportHeader() + "changed enumeration from " + c.oldNode.getEnumeration() + " to " + c.newNode.getEnumeration());
ArrayList<String> newEnumerationList = new ArrayList<>(c.newNode.getEnumeration());
boolean isFixedDefaultByEnumeration = newEnumerationList.size() == 1;
newEnumerationList.removeAll(c.oldNode.getEnumeration());
if(newEnumerationList.size() > 0){
if(c.oldNode.getEnumeration() != null) {
newEnumerationList.removeAll(c.oldNode.getEnumeration());
}
if(c.oldNode.getEnumeration() == null || newEnumerationList.size() > 0){
if(isFixedDefaultByEnumeration) {// if single enumeration (new)
if (c.oldNode.getFixedValue() != null && c.oldNode.getFixedValue().equals(newEnumerationList.get(0))) {
c.setReportHeader(c.getReportHeader() + (" (no semantic change, as new single enumeration value existed as previous fixed default: " + c.newNode.getFixedValue() + ")"));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,45 +0,0 @@
In type {ExchangedDocumentType} modifying element:
old: <TypeCode>{DocumentCodeType}{1..1} in type {ExchangedDocumentType}
new: <TypeCode>{DocumentCodeType}{0..1} in type {ExchangedDocumentType}
Narrowed enumeration from [80, 81, 82, 83, 84, 130, 202, 203, 204, 211, 261, 262, 295, 296, 308, 325, 326, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 393, 394, 395, 396, 420, 456, 457, 458, 527, 575, 623, 633, 751, 780, 875, 876, 877, 935] to []
removed: [80, 81, 82, 83, 84, 130, 202, 203, 204, 211, 261, 262, 295, 296, 308, 325, 326, 380, 381, 383, 384, 385, 386, 387, 388, 389, 390, 393, 394, 395, 396, 420, 456, 457, 458, 527, 575, 623, 633, 751, 780, 875, 876, 877, 935]
In type {HeaderTradeSettlementType} modifying element:
old: <InvoiceCurrencyCode>{CurrencyCodeType}{1..1} in type {HeaderTradeSettlementType}
new: <InvoiceCurrencyCode>{CurrencyCodeType}{0..1} in type {HeaderTradeSettlementType}
Narrowed enumeration from [AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL] to []
removed: [AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL]
In type {HeaderTradeSettlementType} modifying element:
old: <TaxCurrencyCode>{CurrencyCodeType}{0..1} in type {HeaderTradeSettlementType}
new: <TaxCurrencyCode>{CurrencyCodeType}{0..1} in type {HeaderTradeSettlementType}
Narrowed enumeration from [AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL] to []
removed: [AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWL]
In type {TradeAddressType} modifying element:
old: <CountryID>{CountryIDType}{1..1} in type {TradeAddressType}
new: <CountryID>{CountryIDType}{0..1} in type {TradeAddressType}
Narrowed enumeration from [1A, AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XI, YE, YT, ZA, ZM, ZW] to []
removed: [1A, AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, XI, YE, YT, ZA, ZM, ZW]
In type {TradeAllowanceChargeType} modifying element:
old: <ReasonCode>{AllowanceChargeReasonCodeType}{0..1} in type {TradeAllowanceChargeType}
new: <ReasonCode>{AllowanceChargeReasonCodeType}{0..1} in type {TradeAllowanceChargeType}
Narrowed enumeration from [AA, AAA, AAC, AAD, AAE, AAF, AAH, AAI, AAS, AAT, AAV, AAY, AAZ, ABA, ABB, ABC, ABD, ABF, ABK, ABL, ABN, ABR, ABS, ABT, ABU, ACF, ACG, ACH, ACI, ACJ, ACK, ACL, ACM, ACS, ADC, ADE, ADJ, ADK, ADL, ADM, ADN, ADO, ADP, ADQ, ADR, ADT, ADW, ADY, ADZ, AEA, AEB, AEC, AED, AEF, AEH, AEI, AEJ, AEK, AEL, AEM, AEN, AEO, AEP, AES, AET, AEU, AEV, AEW, AEX, AEY, AEZ, AJ, AU, CA, CAB, CAD, CAE, CAF, CAI, CAJ, CAK, CAL, CAM, CAN, CAO, CAP, CAQ, CAR, CAS, CAT, CAU, CAV, CAW, CAX, CAY, CAZ, CD, CG, CS, CT, DAB, DAC, DAD, DAF, DAG, DAH, DAI, DAJ, DAK, DAL, DAM, DAN, DAO, DAP, DAQ, DL, EG, EP, ER, FAA, FAB, FAC, FC, FH, FI, GAA, HAA, HD, HH, IAA, IAB, ID, IF, IR, IS, KO, L1, LA, LAA, LAB, LF, MAE, MI, ML, NAA, OA, PA, PAA, PC, PL, RAB, RAC, RAD, RAF, RE, RF, RH, RV, SA, SAA, SAD, SAE, SAI, SG, SH, SM, SU, TAB, TAC, TT, TV, V1, V2, WH, XAA, YY, ZZZ, 41, 42, 60, 62, 63, 64, 65, 66, 67, 68, 70, 71, 88, 95, 100, 102, 103, 104, 105] to []
removed: [AA, AAA, AAC, AAD, AAE, AAF, AAH, AAI, AAS, AAT, AAV, AAY, AAZ, ABA, ABB, ABC, ABD, ABF, ABK, ABL, ABN, ABR, ABS, ABT, ABU, ACF, ACG, ACH, ACI, ACJ, ACK, ACL, ACM, ACS, ADC, ADE, ADJ, ADK, ADL, ADM, ADN, ADO, ADP, ADQ, ADR, ADT, ADW, ADY, ADZ, AEA, AEB, AEC, AED, AEF, AEH, AEI, AEJ, AEK, AEL, AEM, AEN, AEO, AEP, AES, AET, AEU, AEV, AEW, AEX, AEY, AEZ, AJ, AU, CA, CAB, CAD, CAE, CAF, CAI, CAJ, CAK, CAL, CAM, CAN, CAO, CAP, CAQ, CAR, CAS, CAT, CAU, CAV, CAW, CAX, CAY, CAZ, CD, CG, CS, CT, DAB, DAC, DAD, DAF, DAG, DAH, DAI, DAJ, DAK, DAL, DAM, DAN, DAO, DAP, DAQ, DL, EG, EP, ER, FAA, FAB, FAC, FC, FH, FI, GAA, HAA, HD, HH, IAA, IAB, ID, IF, IR, IS, KO, L1, LA, LAA, LAB, LF, MAE, MI, ML, NAA, OA, PA, PAA, PC, PL, RAB, RAC, RAD, RAF, RE, RF, RH, RV, SA, SAA, SAD, SAE, SAI, SG, SH, SM, SU, TAB, TAC, TT, TV, V1, V2, WH, XAA, YY, ZZZ, 41, 42, 60, 62, 63, 64, 65, 66, 67, 68, 70, 71, 88, 95, 100, 102, 103, 104, 105]
In type {TradeSettlementPaymentMeansType} modifying element:
old: <TypeCode>{PaymentMeansCodeType}{1..1} in type {TradeSettlementPaymentMeansType}
new: <TypeCode>{PaymentMeansCodeType}{0..1} in type {TradeSettlementPaymentMeansType}
Narrowed enumeration from [10, 20, 30, 42, 48, 49, 57, 58, 59, 97, ZZZ] to []
removed: [10, 20, 30, 42, 48, 49, 57, 58, 59, 97, ZZZ]
In type {TradeTaxType} modifying element:
old: <CategoryCode>{TaxCategoryCodeType}{1..1} in type {TradeTaxType}
new: <CategoryCode>{TaxCategoryCodeType}{0..1} in type {TradeTaxType}
Narrowed enumeration from [AE, E, G, K, L, M, O, S, Z] to []
removed: [AE, E, G, K, L, M, O, S, Z]
In type {TradeTaxType} modifying element:
old: <DueDateTypeCode>{TimeReferenceCodeType}{0..1} in type {TradeTaxType}
new: <DueDateTypeCode>{TimeReferenceCodeType}{0..1} in type {TradeTaxType}
Narrowed enumeration from [5, 29, 72] to []
removed: [5, 29, 72]
In type {TradeTaxType} modifying element:
old: <TypeCode>{TaxTypeCodeType}{1..1} in type {TradeTaxType}
new: <TypeCode>{TaxTypeCodeType}{0..1} in type {TradeTaxType}
Narrowed enumeration from [VAT] to []
removed: [VAT]
Loading

0 comments on commit ef39882

Please sign in to comment.