From ed2f98b57b0f82915515e51076f513623debdc02 Mon Sep 17 00:00:00 2001 From: ptorres-prowide Date: Wed, 18 Sep 2024 16:48:42 -0300 Subject: [PATCH] CU-86b14j4e0_SRU2024_check-code-security-reports-at-GitHub-for-all-repos --- .github/workflows/codeql.yml | 2 +- .../swift/io/parser/XMLParser.java | 12 +- .../swift/model/MtSwiftMessage.java | 4 +- .../swift/model/SwiftTagListBlock.java | 13 +- .../swift/model/field/Field11T.java | 29 +- .../swift/model/field/Field11T.java.bak | 799 ------------------ .../swift/model/field/Field21T.java | 11 +- .../swift/model/field/Field29K.java | 12 +- .../swift/model/field/Field37P.java | 59 +- .../swift/model/field/Field37U.java | 59 +- .../swift/model/field/Field39D.java | 22 +- 11 files changed, 73 insertions(+), 949 deletions(-) delete mode 100644 src/main/java/com/prowidesoftware/swift/model/field/Field11T.java.bak diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index f002ec949..2f4388b96 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -4,7 +4,7 @@ on: push: branches: [ "main", "CU-*", "SRU*" ] pull_request: - branches: [ "main", "SRU*" ] + branches: [ "main" ] schedule: - cron: "59 12 * * 2" diff --git a/src/main/java/com/prowidesoftware/swift/io/parser/XMLParser.java b/src/main/java/com/prowidesoftware/swift/io/parser/XMLParser.java index 1e52044d2..991c196b8 100644 --- a/src/main/java/com/prowidesoftware/swift/io/parser/XMLParser.java +++ b/src/main/java/com/prowidesoftware/swift/io/parser/XMLParser.java @@ -19,16 +19,18 @@ import com.prowidesoftware.swift.model.*; import com.prowidesoftware.swift.model.field.Field; import com.prowidesoftware.swift.utils.SafeXmlUtils; -import java.io.ByteArrayInputStream; -import java.nio.charset.StandardCharsets; -import java.util.logging.Level; -import javax.xml.parsers.DocumentBuilder; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; +import java.util.logging.Level; + +import javax.xml.parsers.DocumentBuilder; + /** * This is the main parser for WIFE's XML internal representation.
* The supported XML format is consider internal because it is an ad-hoc @@ -59,7 +61,7 @@ public class XMLParser { * @see com.prowidesoftware.swift.io.IConversionService#getMessageFromXML(java.lang.String) */ public SwiftMessage parse(final String xml) { - Validate.notNull(xml); + Validate.isTrue(xml != null); try { final DocumentBuilder db = SafeXmlUtils.documentBuilder(); final Document doc = db.parse(new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8))); diff --git a/src/main/java/com/prowidesoftware/swift/model/MtSwiftMessage.java b/src/main/java/com/prowidesoftware/swift/model/MtSwiftMessage.java index a804b34b6..972d6cadf 100644 --- a/src/main/java/com/prowidesoftware/swift/model/MtSwiftMessage.java +++ b/src/main/java/com/prowidesoftware/swift/model/MtSwiftMessage.java @@ -442,12 +442,12 @@ public Integer getMessageTypeInt() { final String number = getMessageType(); if (StringUtils.isNumeric(number)) { try { - return Integer.parseInt(number); + return Integer.parseInt(number); } catch (NumberFormatException e) { log.log(Level.WARNING, "error parsing message type as number: " + e.getMessage(), e); } } - return null; + return null; } /** diff --git a/src/main/java/com/prowidesoftware/swift/model/SwiftTagListBlock.java b/src/main/java/com/prowidesoftware/swift/model/SwiftTagListBlock.java index f33038187..78af90e08 100644 --- a/src/main/java/com/prowidesoftware/swift/model/SwiftTagListBlock.java +++ b/src/main/java/com/prowidesoftware/swift/model/SwiftTagListBlock.java @@ -21,13 +21,14 @@ import com.prowidesoftware.swift.model.field.Field16R; import com.prowidesoftware.swift.model.field.Field16S; import com.prowidesoftware.swift.model.field.GenericField; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Validate; + import java.io.Serializable; import java.util.*; import java.util.logging.Level; import java.util.stream.Collectors; -import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.Validate; /** * Base class for SWIFT blocks that contain and arbitrary set of fields (3, 4, 5 and user blocks).
@@ -1909,7 +1910,7 @@ public SwiftTagListBlock append(final SwiftTagListBlock... blocks) { * @since 7.7 */ public SwiftTagListBlock append(final Tag tag) { - Validate.notNull(tag); + Validate.isTrue(tag != null); this.tags.add(tag); return this; } @@ -1940,7 +1941,7 @@ public SwiftTagListBlock append(final Tag... tags) { * @since 7.7 */ public SwiftTagListBlock append(final Field field) { - Validate.notNull(field); + Validate.isTrue(field != null); this.tags.add(field.asTag()); return this; } @@ -1953,7 +1954,7 @@ public SwiftTagListBlock append(final Field field) { * @since 7.8 */ public SwiftTagListBlock append(final Field... fields) { - if (fields != null && fields.length > 0) { + if (fields != null) { for (final Field f : fields) { append(f); } diff --git a/src/main/java/com/prowidesoftware/swift/model/field/Field11T.java b/src/main/java/com/prowidesoftware/swift/model/field/Field11T.java index 8fcabcd81..281446fc0 100644 --- a/src/main/java/com/prowidesoftware/swift/model/field/Field11T.java +++ b/src/main/java/com/prowidesoftware/swift/model/field/Field11T.java @@ -221,14 +221,14 @@ public String getValueDisplay(int component, Locale locale) { return f.format(cal.getTime()); } } - // time: HH[mm] - java.text.DateFormat f = new java.text.SimpleDateFormat("HH:mm", notNull(locale)); - java.util.Calendar cal = getComponent3AsCalendar(); - if (cal != null) { - return f.format(cal.getTime()); - } - return null; + // time: HH[mm] + java.text.DateFormat f = new java.text.SimpleDateFormat("HH:mm", notNull(locale)); + java.util.Calendar cal = getComponent3AsCalendar(); + if (cal != null) { + return f.format(cal.getTime()); } + return null; + } /** * Returns the field component types pattern. @@ -451,7 +451,6 @@ public Field11T setComponent1(String component1) { return this; } - /** * Alternative method setter for field's Type (component 1) as as Number * @@ -593,7 +592,7 @@ public Field11T setTime(java.util.Calendar component3) { * * @return the list of converted components (a Calendar object or null) */ - @Override + @Override public List dates() { return DateResolver.dates(this); } @@ -686,7 +685,7 @@ public static List getAll(final SwiftTagListBlock block) { * @return line content or null if not present or if line number is above the expected * @since 7.7 */ - @Override + @Override public String getLine(int line) { return getLine(line, 0); } @@ -700,7 +699,7 @@ public String getLine(int line) { * @return line content or null if not present or if line number is above the expected * @since 7.7 */ - @Override + @Override public String getLine(int line, int offset) { Field11T cp = newInstance(this); return getLine(cp, line, null, offset); @@ -713,7 +712,7 @@ public String getLine(int line, int offset) { * @return lines content or empty list if field's value is empty * @since 7.7 */ - @Override + @Override public List getLines() { return SwiftParseUtils.getLines(getValue()); } @@ -726,7 +725,7 @@ public List getLines() { * @return found lines or empty list if lines are not present or the offset is invalid * @since 7.7 */ - @Override + @Override public List getLines(int offset) { Field11T cp = newInstance(this); return SwiftParseUtils.getLines(getLine(cp, null, null, offset)); @@ -741,7 +740,7 @@ public List getLines(int offset) { * @return found lines or empty list if value is empty * @since 7.7 */ - @Override + @Override public List getLinesBetween(int start, int end) { return getLinesBetween(start, end, 0); } @@ -756,7 +755,7 @@ public List getLinesBetween(int start, int end) { * @return found lines or empty list if lines are not present or the offset is invalid * @since 7.7 */ - @Override + @Override public List getLinesBetween(int start, int end, int offset) { Field11T cp = newInstance(this); return SwiftParseUtils.getLines(getLine(cp, start, end, offset)); diff --git a/src/main/java/com/prowidesoftware/swift/model/field/Field11T.java.bak b/src/main/java/com/prowidesoftware/swift/model/field/Field11T.java.bak deleted file mode 100644 index 7a66058bc..000000000 --- a/src/main/java/com/prowidesoftware/swift/model/field/Field11T.java.bak +++ /dev/null @@ -1,799 +0,0 @@ -/* - * Copyright 2006-2023 Prowide - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.prowidesoftware.swift.model.field; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import com.prowidesoftware.deprecation.ProwideDeprecated; -import com.prowidesoftware.deprecation.TargetYear; -import com.prowidesoftware.swift.model.*; -import com.prowidesoftware.swift.model.Tag; -import com.prowidesoftware.swift.utils.SwiftFormatUtils; -import java.io.Serializable; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import org.apache.commons.lang3.StringUtils; - -/** - * SWIFT MT Field 11T. - *

- * Model and parser for field 11T of a SWIFT MT message. - * - *

Subfields (components) Data types - *

    - *
  1. Component 1: Type: Long
  2. - *
  3. Component 2: Date: Calendar
  4. - *
  5. Component 3: Time: Calendar
  6. - *
- * - *

Structure definition - *

    - *
  • validation pattern: <MT>$<DATE4><HHMM>
  • - *
  • parser pattern: S$<DATE4><HHMM>
  • - *
  • components pattern: NDH
  • - *
- * - *

- * This class complies with standard release SRU2022 - * - * @deprecated This field has been moved to the Prowide Integrator since it is only used in SCORE messages, not in the general MT standard - */ -@ProwideDeprecated(phase4 = TargetYear.SRU2025) -public class Field11T extends Field implements Serializable, DateContainer, MultiLineField { - /** - * Constant identifying the SRU to which this class belongs to. - */ - public static final int SRU = 2022; - - private static final long serialVersionUID = 1L; - /** - * Constant with the field name 11T. - */ - public static final String NAME = "11T"; - /** - * Same as NAME, intended to be clear when using static imports. - */ - public static final String F_11T = "11T"; - - /** - * Component number for the Type subfield. - */ - public static final Integer TYPE = 1; - - /** - * Component number for the Date subfield. - */ - public static final Integer DATE = 2; - - /** - * Component number for the Time subfield. - */ - public static final Integer TIME = 3; - - /** - * Default constructor. Creates a new field setting all components to null. - */ - public Field11T() { - super(3); - } - - /** - * Creates a new field and initializes its components with content from the parameter value. - * @param value complete field value including separators and CRLF - */ - public Field11T(final String value) { - super(value); - } - - /** - * Creates a new field and initializes its components with content from the parameter tag. - * The value is parsed with {@link #parse(String)} - * @throws IllegalArgumentException if the parameter tag is null or its tagname does not match the field name - * @since 7.8 - */ - public Field11T(final Tag tag) { - this(); - if (tag == null) { - throw new IllegalArgumentException("tag cannot be null."); - } - if (!StringUtils.equals(tag.getName(), "11T")) { - throw new IllegalArgumentException("cannot create field 11T from tag " + tag.getName() - + ", tagname must match the name of the field."); - } - parse(tag.getValue()); - } - - /** - * Copy constructor. - * Initializes the components list with a deep copy of the source components list. - * @param source a field instance to copy - * @since 7.7 - */ - public static Field11T newInstance(Field11T source) { - Field11T cp = new Field11T(); - cp.setComponents(new ArrayList<>(source.getComponents())); - return cp; - } - - /** - * Create a Tag with this field name and the given value. - * Shorthand for new Tag(NAME, value) - * @see #NAME - * @since 7.5 - */ - public static Tag tag(final String value) { - return new Tag(NAME, value); - } - - /** - * Create a Tag with this field name and an empty string as value. - * Shorthand for new Tag(NAME, "") - * @see #NAME - * @since 7.5 - */ - public static Tag emptyTag() { - return new Tag(NAME, ""); - } - - /** - * Parses the parameter value into the internal components structure. - * - *

Used to update all components from a full new value, as an alternative - * to setting individual components. Previous component values are overwritten. - * - * @param value complete field value including separators and CRLF - * @since 7.8 - */ - @Override - public void parse(final String value) { - init(3); - List lines = SwiftParseUtils.getLines(value); - if (lines.isEmpty()) { - return; - } - setComponent1(lines.get(0)); - if (lines.size() > 1 && lines.get(1) != null) { - String line = lines.get(1); - setComponent2(StringUtils.substring(line, 0, 8)); - if (line.length() > 8) { - setComponent3(StringUtils.substring(line, 8)); - } - } - } - - /** - * Serializes the fields' components into the single string value (SWIFT format) - */ - @Override - public String getValue() { - final StringBuilder result = new StringBuilder(); - append(result, 1); - if (getComponent2() != null || getComponent3() != null) { - result.append(com.prowidesoftware.swift.io.writer.FINWriterVisitor.SWIFT_EOL); - append(result, 2); - append(result, 3); - } - return result.toString(); - } - - /** - * Returns a localized suitable for showing to humans string of a field component.
- * - * @param component number of the component to display - * @param locale optional locale to format date and amounts, if null, the default locale is used - * @return formatted component value or null if component number is invalid or not present - * @throws IllegalArgumentException if component number is invalid for the field - * @since 7.8 - */ - @Override - public String getValueDisplay(int component, Locale locale) { - if (component < 1 || component > 3) { - throw new IllegalArgumentException("invalid component number " + component + " for field 11T"); - } - if (component == 1) { - // default format (as is) - return getComponent(1); - } - if (component == 2) { - // date: [YY]YYMMDD - java.text.DateFormat f = - java.text.DateFormat.getDateInstance(java.text.DateFormat.DEFAULT, notNull(locale)); - java.util.Calendar cal = getComponent2AsCalendar(); - if (cal != null) { - return f.format(cal.getTime()); - } - } - // time: HH[mm] - java.text.DateFormat f = new java.text.SimpleDateFormat("HH:mm", notNull(locale)); - java.util.Calendar cal = getComponent3AsCalendar(); - if (cal != null) { - return f.format(cal.getTime()); - } - return null; - } - } - - /** - * Returns the field component types pattern. - * - * This method returns a letter representing the type for each component in the Field. It supersedes - * the Components Pattern because it distinguishes between N (Number) and I (BigDecimal). - * @since 9.2.7 - */ - @Override - public String typesPattern() { - return "NDH"; - } - - /** - * Returns the field parser pattern. - */ - @Override - public String parserPattern() { - return "S$"; - } - - /** - * Returns the field validator pattern - */ - @Override - public String validatorPattern() { - return "$"; - } - - /** - * Given a component number it returns true if the component is optional, - * regardless of the field being mandatory in a particular message.
- * Being the field's value conformed by a composition of one or several - * internal component values, the field may be present in a message with - * a proper value but with some of its internal components not set. - * - * @param component component number, first component of a field is referenced as 1 - * @return true if the component is optional for this field, false otherwise - */ - @Override - public boolean isOptional(int component) { - return false; - } - - /** - * Returns true if the field is a GENERIC FIELD as specified by the standard. - * @return true if the field is generic, false otherwise - */ - @Override - public boolean isGeneric() { - return false; - } - - /** - * Returns the defined amount of components.
- * This is not the amount of components present in the field instance, but the total amount of components - * that this field accepts as defined. - * @since 7.7 - */ - @Override - public int componentsSize() { - return 3; - } - - /** - * Returns english label for components. - *
- * The index in the list is in sync with specific field component structure. - * @see #getComponentLabel(int) - * @since 7.8.4 - */ - @Override - public List getComponentLabels() { - List result = new ArrayList<>(); - result.add("Type"); - result.add("Date"); - result.add("Time"); - return result; - } - - /** - * Returns a mapping between component numbers and their label in camel case format. - * @since 7.10.3 - */ - @Override - protected Map getComponentMap() { - Map result = new HashMap<>(); - result.put(1, "type"); - result.put(2, "date"); - result.put(3, "time"); - return result; - } - - /** - * @see Field#getLabelMap() - * @since 9.3.12 - */ - @Override - protected Map getLabelMap() { - if (super.labelMap != null && !super.labelMap.isEmpty()) { - // return cached map - return super.labelMap; - } - super.labelMap = new HashMap<>(); - super.labelMap.put("type", 1); - super.labelMap.put("date", 2); - super.labelMap.put("time", 3); - return super.labelMap; - } - - /** - * Gets the component 1 (Type). - * @return the component 1 - */ - public String getComponent1() { - return getComponent(1); - } - - /** - * Get the component 1 as Long - * - * @return the component 1 converted to Long or null if cannot be converted - * @since 9.2.7 - */ - public java.lang.Long getComponent1AsLong() { - return SwiftFormatUtils.getLong(getComponent(1)); - } - - /** - * Gets the Type (component 1). - * @return the Type from component 1 - */ - public String getType() { - return getComponent1(); - } - - /** - * Get the Type (component 1) as Long - * @return the Type from component 1 converted to Long or null if cannot be converted - * @since 9.2.7 - */ - public java.lang.Long getTypeAsLong() { - return getComponent1AsLong(); - } - - /** - * Gets the component 2 (Date). - * @return the component 2 - */ - public String getComponent2() { - return getComponent(2); - } - - /** - * Get the component 2 as Calendar - * - * @return the component 2 converted to Calendar or null if cannot be converted - */ - public java.util.Calendar getComponent2AsCalendar() { - return SwiftFormatUtils.getDate4(getComponent(2)); - } - - /** - * Gets the Date (component 2). - * @return the Date from component 2 - */ - public String getDate() { - return getComponent2(); - } - - /** - * Get the Date (component 2) as Calendar - * @return the Date from component 2 converted to Calendar or null if cannot be converted - */ - public java.util.Calendar getDateAsCalendar() { - return getComponent2AsCalendar(); - } - - /** - * Gets the component 3 (Time). - * @return the component 3 - */ - public String getComponent3() { - return getComponent(3); - } - - /** - * Get the component 3 as Calendar - * - * @return the component 3 converted to Calendar or null if cannot be converted - */ - public java.util.Calendar getComponent3AsCalendar() { - return SwiftFormatUtils.getTime3(getComponent(3)); - } - - /** - * Gets the Time (component 3). - * @return the Time from component 3 - */ - public String getTime() { - return getComponent3(); - } - - /** - * Get the Time (component 3) as Calendar - * @return the Time from component 3 converted to Calendar or null if cannot be converted - */ - public java.util.Calendar getTimeAsCalendar() { - return getComponent3AsCalendar(); - } - - /** - * Set the component 1 (Type). - * - * @param component1 the Type to set - * @return the field object to enable build pattern - */ - public Field11T setComponent1(String component1) { - setComponent(1, component1); - return this; - } - - - /** - * Alternative method setter for field's Type (component 1) as as Number - * - * This method supports java constant value boxing for simpler coding styles (ex: 10 becomes an Integer) - * - * @param component1 the Number with the Type content to set - * @return the field object to enable build pattern - */ - public Field11T setComponent1(java.lang.Number component1) { - - // NOTE: remember instanceof implicitly checks for non-null - - if (component1 instanceof Long) { - setComponent(1, SwiftFormatUtils.getLong((Long) component1)); - } else if (component1 instanceof BigInteger || component1 instanceof Integer) { - setComponent(1, SwiftFormatUtils.getLong(component1.longValue())); - } else if (component1 != null) { - // it's another non-null Number (Float, Double, BigDecimal, etc...) - setComponent(1, SwiftFormatUtils.getLong(component1.longValue())); - } else { - // explicitly set component as null - setComponent(1, null); - } - return this; - } - - /** - * Set the Type (component 1). - * - * @param component1 the Type to set - * @return the field object to enable build pattern - */ - public Field11T setType(String component1) { - return setComponent1(component1); - } - - /** - * Alternative method setter for field's Type (component 1) as as Number - * - * This method supports java constant value boxing for simpler coding styles (ex: 10 becomes an Integer) - * - * @param component1 the Number with the Type content to set - * @return the field object to enable build pattern - */ - public Field11T setType(java.lang.Number component1) { - return setComponent1(component1); - } - - /** - * Set the component 2 (Date). - * - * @param component2 the Date to set - * @return the field object to enable build pattern - */ - public Field11T setComponent2(String component2) { - setComponent(2, component2); - return this; - } - - /** - * Set the component2 from a Calendar object. - * - * @param component2 the Calendar with the Date content to set - * @return the field object to enable build pattern - */ - public Field11T setComponent2(java.util.Calendar component2) { - setComponent(2, SwiftFormatUtils.getDate4(component2)); - return this; - } - - /** - * Set the Date (component 2). - * - * @param component2 the Date to set - * @return the field object to enable build pattern - */ - public Field11T setDate(String component2) { - return setComponent2(component2); - } - - /** - * Set the Date (component 2) from a Calendar object. - * - * @see #setComponent2(java.util.Calendar) - * - * @param component2 Calendar with the Date content to set - * @return the field object to enable build pattern - */ - public Field11T setDate(java.util.Calendar component2) { - return setComponent2(component2); - } - - /** - * Set the component 3 (Time). - * - * @param component3 the Time to set - * @return the field object to enable build pattern - */ - public Field11T setComponent3(String component3) { - setComponent(3, component3); - return this; - } - - /** - * Set the component3 from a Calendar object. - * - * @param component3 the Calendar with the Time content to set - * @return the field object to enable build pattern - */ - public Field11T setComponent3(java.util.Calendar component3) { - setComponent(3, SwiftFormatUtils.getTime3(component3)); - return this; - } - - /** - * Set the Time (component 3). - * - * @param component3 the Time to set - * @return the field object to enable build pattern - */ - public Field11T setTime(String component3) { - return setComponent3(component3); - } - - /** - * Set the Time (component 3) from a Calendar object. - * - * @see #setComponent3(java.util.Calendar) - * - * @param component3 Calendar with the Time content to set - * @return the field object to enable build pattern - */ - public Field11T setTime(java.util.Calendar component3) { - return setComponent3(component3); - } - - /** - * Returns all components that can be converted to a Calendar - * - * @return the list of converted components (a Calendar object or null) - */ - @Override - public List dates() { - return DateResolver.dates(this); - } - - /** - * Returns the first component that can be converted to a Calendar - * - * @return the converted components (a Calendar object or null) - */ - public Calendar date() { - return DateResolver.date(this); - } - - /** - * Returns the field's name composed by the field number and the letter option (if any). - * @return the static value of Field11T.NAME - */ - @Override - public String getName() { - return NAME; - } - - /** - * Gets the first occurrence form the tag list or null if not found. - * @return null if not found o block is null or empty - * @param block may be null or empty - */ - public static Field11T get(final SwiftTagListBlock block) { - if (block == null || block.isEmpty()) { - return null; - } - final Tag t = block.getTagByName(NAME); - if (t == null) { - return null; - } - return new Field11T(t); - } - - /** - * Gets the first instance of Field11T in the given message. - * @param msg may be empty or null - * @return null if not found or msg is empty or null - * @see #get(SwiftTagListBlock) - */ - public static Field11T get(final SwiftMessage msg) { - if (msg == null || msg.getBlock4() == null || msg.getBlock4().isEmpty()) { - return null; - } - return get(msg.getBlock4()); - } - - /** - * Gets a list of all occurrences of the field Field11T in the given message - * an empty list is returned if none found. - * @param msg may be empty or null in which case an empty list is returned - * @see #getAll(SwiftTagListBlock) - */ - public static List getAll(final SwiftMessage msg) { - if (msg == null || msg.getBlock4() == null || msg.getBlock4().isEmpty()) { - return java.util.Collections.emptyList(); - } - return getAll(msg.getBlock4()); - } - - /** - * Gets a list of all occurrences of the field Field11T from the given block - * an empty list is returned if none found. - * - * @param block may be empty or null in which case an empty list is returned - */ - public static List getAll(final SwiftTagListBlock block) { - final List result = new ArrayList<>(); - if (block == null || block.isEmpty()) { - return result; - } - final Tag[] arr = block.getTagsByName(NAME); - if (arr != null) { - for (final Tag f : arr) { - result.add(new Field11T(f)); - } - } - return result; - } - - /** - * Returns a specific line from the field's value. - * - * @see MultiLineField#getLine(int) - * @param line a reference to a specific line in the field, first line being 1 - * @return line content or null if not present or if line number is above the expected - * @since 7.7 - */ - @Override - public String getLine(int line) { - return getLine(line, 0); - } - - /** - * Returns a specific line from the field's value. - * - * @see MultiLineField#getLine(int, int) - * @param line a reference to a specific line in the field, first line being 1 - * @param offset an optional component number used as offset when counting lines - * @return line content or null if not present or if line number is above the expected - * @since 7.7 - */ - @Override - public String getLine(int line, int offset) { - Field11T cp = newInstance(this); - return getLine(cp, line, null, offset); - } - - /** - * Returns the field value split into lines. - * - * @see MultiLineField#getLines() - * @return lines content or empty list if field's value is empty - * @since 7.7 - */ - @Override - public List getLines() { - return SwiftParseUtils.getLines(getValue()); - } - - /** - * Returns the field value starting at the offset component, split into lines. - * - * @see MultiLineField#getLines(int) - * @param offset an optional component number used as offset when counting lines - * @return found lines or empty list if lines are not present or the offset is invalid - * @since 7.7 - */ - @Override - public List getLines(int offset) { - Field11T cp = newInstance(this); - return SwiftParseUtils.getLines(getLine(cp, null, null, offset)); - } - - /** - * Returns a specific subset of lines from the field's value, given a range. - * - * @see MultiLineField#getLinesBetween(int, int ) - * @param start a reference to a specific line in the field, first line being 1 - * @param end a reference to a specific line in the field, must be greater than start - * @return found lines or empty list if value is empty - * @since 7.7 - */ - @Override - public List getLinesBetween(int start, int end) { - return getLinesBetween(start, end, 0); - } - - /** - * Returns a specific subset of lines from the field's value, starting at the offset component. - * - * @see MultiLineField#getLinesBetween(int start, int end, int offset) - * @param start a reference to a specific line in the field, first line being 1 - * @param end a reference to a specific line in the field, must be greater than start - * @param offset an optional component number used as offset when counting lines - * @return found lines or empty list if lines are not present or the offset is invalid - * @since 7.7 - */ - @Override - public List getLinesBetween(int start, int end, int offset) { - Field11T cp = newInstance(this); - return SwiftParseUtils.getLines(getLine(cp, start, end, offset)); - } - - /** - * This method deserializes the JSON data into a Field11T object. - * @param json JSON structure including tuples with label and value for all field components - * @return a new field instance with the JSON data parsed into field components or an empty field id the JSON is invalid - * @since 7.10.3 - * @see Field#fromJson(String) - */ - public static Field11T fromJson(final String json) { - - final Field11T field = new Field11T(); - - final JsonObject jsonObject = JsonParser.parseString(json).getAsJsonObject(); - - // **** COMPONENT 1 - Type - - if (jsonObject.get("type") != null) { - field.setComponent1(jsonObject.get("type").getAsString()); - } - - // **** COMPONENT 2 - Date - - if (jsonObject.get("date") != null) { - field.setComponent2(jsonObject.get("date").getAsString()); - } - - // **** COMPONENT 3 - Time - - if (jsonObject.get("time") != null) { - field.setComponent3(jsonObject.get("time").getAsString()); - } - - return field; - } -} diff --git a/src/main/java/com/prowidesoftware/swift/model/field/Field21T.java b/src/main/java/com/prowidesoftware/swift/model/field/Field21T.java index 605a5eb4a..b0658a569 100644 --- a/src/main/java/com/prowidesoftware/swift/model/field/Field21T.java +++ b/src/main/java/com/prowidesoftware/swift/model/field/Field21T.java @@ -174,14 +174,11 @@ public String getValue() { */ @Override public String getValueDisplay(int component, Locale locale) { - if (component < 1 || component > 1) { + if (component != 1) { throw new IllegalArgumentException("invalid component number " + component + " for field 21T"); } - if (component == 1) { - // default format (as is) - return getComponent(1); - } - return null; + // default format (as is) + return getComponent(1); } /** @@ -387,7 +384,7 @@ public static List getAll(final SwiftTagListBlock block) { return result; } final Tag[] arr = block.getTagsByName(NAME); - if (arr != null && arr.length > 0) { + if (arr != null) { for (final Tag f : arr) { result.add(new Field21T(f)); } diff --git a/src/main/java/com/prowidesoftware/swift/model/field/Field29K.java b/src/main/java/com/prowidesoftware/swift/model/field/Field29K.java index f7ce73f3a..b04108151 100644 --- a/src/main/java/com/prowidesoftware/swift/model/field/Field29K.java +++ b/src/main/java/com/prowidesoftware/swift/model/field/Field29K.java @@ -171,13 +171,11 @@ public String getValueDisplay(int component, Locale locale) { // default format (as is) return getComponent(1); } - if (component == 2) { - // time: HH[mm] - java.text.DateFormat f = new java.text.SimpleDateFormat("HH:mm", notNull(locale)); - java.util.Calendar cal = getComponent2AsCalendar(); - if (cal != null) { - return f.format(cal.getTime()); - } + // time: HH[mm] + java.text.DateFormat f = new java.text.SimpleDateFormat("HH:mm", notNull(locale)); + java.util.Calendar cal = getComponent2AsCalendar(); + if (cal != null) { + return f.format(cal.getTime()); } return null; } diff --git a/src/main/java/com/prowidesoftware/swift/model/field/Field37P.java b/src/main/java/com/prowidesoftware/swift/model/field/Field37P.java index 8e7e03839..419677ef3 100644 --- a/src/main/java/com/prowidesoftware/swift/model/field/Field37P.java +++ b/src/main/java/com/prowidesoftware/swift/model/field/Field37P.java @@ -19,17 +19,14 @@ import com.google.gson.JsonParser; import com.prowidesoftware.deprecation.ProwideDeprecated; import com.prowidesoftware.deprecation.TargetYear; -import com.prowidesoftware.swift.model.*; +import com.prowidesoftware.swift.model.SwiftMessage; +import com.prowidesoftware.swift.model.SwiftTagListBlock; import com.prowidesoftware.swift.model.Tag; import com.prowidesoftware.swift.utils.SwiftFormatUtils; import java.io.Serializable; import java.math.BigDecimal; import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; +import java.util.*; import org.apache.commons.lang3.StringUtils; /** @@ -158,17 +155,15 @@ public String getValue() { */ @Override public String getValueDisplay(int component, Locale locale) { - if (component < 1 || component > 1) { + if (component != 1) { throw new IllegalArgumentException("invalid component number " + component + " for field 37P"); } - if (component == 1) { - // amount, rate - java.text.NumberFormat f = java.text.NumberFormat.getNumberInstance(notNull(locale)); - f.setMaximumFractionDigits(13); - BigDecimal n = getComponent1AsBigDecimal(); - if (n != null) { - return f.format(n); - } + // amount, rate + java.text.NumberFormat f = java.text.NumberFormat.getNumberInstance(notNull(locale)); + f.setMaximumFractionDigits(13); + BigDecimal n = getComponent1AsBigDecimal(); + if (n != null) { + return f.format(n); } return null; } @@ -322,24 +317,6 @@ public Field37P setComponent1(String component1) { return this; } - /** - * Set the component1 from a BigDecimal object. - *
- * Parses the BigDecimal into a SWIFT amount with truncated zero decimals and mandatory decimal separator. - *

    - *
  • Example: 1234.00 -> 1234,
  • - *
  • Example: 1234 -> 1234,
  • - *
  • Example: 1234.56 -> 1234,56
  • - *
- * @since 9.2.7 - * - * @param component1 the BigDecimal with the Rate content to set - * @return the field object to enable build pattern - */ - public Field37P setComponent1(java.math.BigDecimal component1) { - setComponent(1, SwiftFormatUtils.getBigDecimal(component1)); - return this; - } /** * Alternative method setter for field's Rate (component 1) as Number * @@ -347,7 +324,6 @@ public Field37P setComponent1(java.math.BigDecimal component1) { * * @param component1 the Number with the Rate content to set * @return the field object to enable build pattern - * @see #setRate(java.math.BigDecimal) */ public Field37P setComponent1(java.lang.Number component1) { @@ -379,19 +355,6 @@ public Field37P setRate(String component1) { return setComponent1(component1); } - /** - * Set the Rate (component 1) from a BigDecimal object. - * - * @see #setComponent1(java.math.BigDecimal) - * - * @param component1 BigDecimal with the Rate content to set - * @return the field object to enable build pattern - * @since 9.2.7 - */ - public Field37P setRate(java.math.BigDecimal component1) { - return setComponent1(component1); - } - /** * Alternative method setter for field's Rate (component 1) as Number * @@ -399,7 +362,6 @@ public Field37P setRate(java.math.BigDecimal component1) { * * @param component1 the Number with the Rate content to set * @return the field object to enable build pattern - * @see #setRate(java.math.BigDecimal) */ public Field37P setRate(java.lang.Number component1) { return setComponent1(component1); @@ -421,6 +383,7 @@ public List amounts() { * @return the first amount as BigDecimal value. Can be null * @see AmountResolver#amount(Field) */ + @Override public BigDecimal amount() { return AmountResolver.amount(this); } diff --git a/src/main/java/com/prowidesoftware/swift/model/field/Field37U.java b/src/main/java/com/prowidesoftware/swift/model/field/Field37U.java index df3ca53ca..de39249ec 100644 --- a/src/main/java/com/prowidesoftware/swift/model/field/Field37U.java +++ b/src/main/java/com/prowidesoftware/swift/model/field/Field37U.java @@ -19,17 +19,14 @@ import com.google.gson.JsonParser; import com.prowidesoftware.deprecation.ProwideDeprecated; import com.prowidesoftware.deprecation.TargetYear; -import com.prowidesoftware.swift.model.*; +import com.prowidesoftware.swift.model.SwiftMessage; +import com.prowidesoftware.swift.model.SwiftTagListBlock; import com.prowidesoftware.swift.model.Tag; import com.prowidesoftware.swift.utils.SwiftFormatUtils; import java.io.Serializable; import java.math.BigDecimal; import java.math.BigInteger; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; +import java.util.*; import org.apache.commons.lang3.StringUtils; /** @@ -158,17 +155,15 @@ public String getValue() { */ @Override public String getValueDisplay(int component, Locale locale) { - if (component < 1 || component > 1) { + if (component != 1) { throw new IllegalArgumentException("invalid component number " + component + " for field 37U"); } - if (component == 1) { - // amount, rate - java.text.NumberFormat f = java.text.NumberFormat.getNumberInstance(notNull(locale)); - f.setMaximumFractionDigits(13); - BigDecimal n = getComponent1AsBigDecimal(); - if (n != null) { - return f.format(n); - } + // amount, rate + java.text.NumberFormat f = java.text.NumberFormat.getNumberInstance(notNull(locale)); + f.setMaximumFractionDigits(13); + BigDecimal n = getComponent1AsBigDecimal(); + if (n != null) { + return f.format(n); } return null; } @@ -322,24 +317,6 @@ public Field37U setComponent1(String component1) { return this; } - /** - * Set the component1 from a BigDecimal object. - *
- * Parses the BigDecimal into a SWIFT amount with truncated zero decimals and mandatory decimal separator. - *
    - *
  • Example: 1234.00 -> 1234,
  • - *
  • Example: 1234 -> 1234,
  • - *
  • Example: 1234.56 -> 1234,56
  • - *
- * @since 9.2.7 - * - * @param component1 the BigDecimal with the Rate content to set - * @return the field object to enable build pattern - */ - public Field37U setComponent1(java.math.BigDecimal component1) { - setComponent(1, SwiftFormatUtils.getBigDecimal(component1)); - return this; - } /** * Alternative method setter for field's Rate (component 1) as Number * @@ -347,7 +324,6 @@ public Field37U setComponent1(java.math.BigDecimal component1) { * * @param component1 the Number with the Rate content to set * @return the field object to enable build pattern - * @see #setRate(java.math.BigDecimal) */ public Field37U setComponent1(java.lang.Number component1) { @@ -379,19 +355,6 @@ public Field37U setRate(String component1) { return setComponent1(component1); } - /** - * Set the Rate (component 1) from a BigDecimal object. - * - * @see #setComponent1(java.math.BigDecimal) - * - * @param component1 BigDecimal with the Rate content to set - * @return the field object to enable build pattern - * @since 9.2.7 - */ - public Field37U setRate(java.math.BigDecimal component1) { - return setComponent1(component1); - } - /** * Alternative method setter for field's Rate (component 1) as Number * @@ -399,7 +362,6 @@ public Field37U setRate(java.math.BigDecimal component1) { * * @param component1 the Number with the Rate content to set * @return the field object to enable build pattern - * @see #setRate(java.math.BigDecimal) */ public Field37U setRate(java.lang.Number component1) { return setComponent1(component1); @@ -421,6 +383,7 @@ public List amounts() { * @return the first amount as BigDecimal value. Can be null * @see AmountResolver#amount(Field) */ + @Override public BigDecimal amount() { return AmountResolver.amount(this); } diff --git a/src/main/java/com/prowidesoftware/swift/model/field/Field39D.java b/src/main/java/com/prowidesoftware/swift/model/field/Field39D.java index afeab6f85..ac3003de8 100644 --- a/src/main/java/com/prowidesoftware/swift/model/field/Field39D.java +++ b/src/main/java/com/prowidesoftware/swift/model/field/Field39D.java @@ -19,14 +19,11 @@ import com.google.gson.JsonParser; import com.prowidesoftware.deprecation.ProwideDeprecated; import com.prowidesoftware.deprecation.TargetYear; -import com.prowidesoftware.swift.model.*; +import com.prowidesoftware.swift.model.SwiftMessage; +import com.prowidesoftware.swift.model.SwiftTagListBlock; import com.prowidesoftware.swift.model.Tag; import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; +import java.util.*; import org.apache.commons.lang3.StringUtils; /** @@ -203,11 +200,8 @@ public String getValueDisplay(int component, Locale locale) { // default format (as is) return getComponent(11); } - if (component == 12) { - // default format (as is) - return getComponent(12); - } - return null; + // default format (as is) + return getComponent(12); } /** @@ -942,6 +936,7 @@ public static List getAll(final SwiftTagListBlock block) { * @return line content or null if not present or if line number is above the expected * @since 7.7 */ + @Override public String getLine(int line) { return getLine(line, 0); } @@ -955,6 +950,7 @@ public String getLine(int line) { * @return line content or null if not present or if line number is above the expected * @since 7.7 */ + @Override public String getLine(int line, int offset) { Field39D cp = newInstance(this); return getLine(cp, line, null, offset); @@ -967,6 +963,7 @@ public String getLine(int line, int offset) { * @return lines content or empty list if field's value is empty * @since 7.7 */ + @Override public List getLines() { return SwiftParseUtils.getLines(getValue()); } @@ -979,6 +976,7 @@ public List getLines() { * @return found lines or empty list if lines are not present or the offset is invalid * @since 7.7 */ + @Override public List getLines(int offset) { Field39D cp = newInstance(this); return SwiftParseUtils.getLines(getLine(cp, null, null, offset)); @@ -993,6 +991,7 @@ public List getLines(int offset) { * @return found lines or empty list if value is empty * @since 7.7 */ + @Override public List getLinesBetween(int start, int end) { return getLinesBetween(start, end, 0); } @@ -1007,6 +1006,7 @@ public List getLinesBetween(int start, int end) { * @return found lines or empty list if lines are not present or the offset is invalid * @since 7.7 */ + @Override public List getLinesBetween(int start, int end, int offset) { Field39D cp = newInstance(this); return SwiftParseUtils.getLines(getLine(cp, start, end, offset));