public abstract class StructuredNarrativeField extends Field implements NarrativeContainer
These fields support having a simple unstructured content splitted in lines and also a structured version with codewords. The codewords are separated with slashes and can be use to categorize part of the narrative content.
Different structured line formats are defined depending on the field number and letter option. This API provides a simple way to get portions of the structured narrative using the code words, regardless of the specific line format the field supports.
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
COMPONENTS_PATTERN
Deprecated.
|
static java.lang.String |
PARSER_PATTERN |
static java.lang.String |
TYPES_PATTERN
Types pattern
Contains a description of the type of each component
|
components| Constructor and Description |
|---|
StructuredNarrativeField()
Default constructor.
|
StructuredNarrativeField(java.lang.String value)
Creates a new field and initializes its components with content from the parameter value.
|
| Modifier and Type | Method and Description |
|---|---|
NarrativeContainer |
appendLine(java.lang.String line)
Appends a line of content to this field.
|
java.lang.String |
componentsPattern()
Deprecated.
|
int |
componentsSize()
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. |
java.lang.String |
getComponent1()
Gets the single field component with the complete consolidated narrative content.
|
java.util.List<java.lang.String> |
getComponentLabels()
Returns english label for components.
|
protected java.util.Map<java.lang.Integer,java.lang.String> |
getComponentMap()
Returns a mapping between component numbers and their label in camel case format.
|
abstract java.lang.String |
getName()
Returns the field's name composed by the field number and the letter option (if any)
|
java.lang.String |
getValue()
Serializes the fields' components into the single string value (SWIFT format)
|
java.lang.String |
getValueDisplay(int component,
java.util.Locale locale)
Returns a localized suitable for showing to humans string of a field component.
|
boolean |
isGeneric()
Returns true if the field is a GENERIC FIELD as specified by the standard.
|
boolean |
isOptional(int component)
Given a component number it returns true if the component is optional,
regardless of the field being mandatory in a particular message.
|
Narrative |
narrative()
Parses the field content into a narrative model.
|
void |
parse(java.lang.String value)
Parses the parameter value into the internal components structure.
|
java.lang.String |
parserPattern()
Returns the field parser pattern
|
NarrativeContainer |
setNarrative(Narrative narrative)
Sets or overrides this field value serializing the content of the structured narrative provided by parameter.
|
java.lang.String |
typesPattern()
Returns the field component types pattern
This method returns a letter representing the type for each component in the Field.
|
abstract java.lang.String |
validatorPattern()
Returns the field validator pattern, that could vary er specific field
|
append, appendInLines, appendInLines, asTag, equals, findComponentStartingWith, format, formatAccount, formatNumber, fromJson, getAsBigDecimal, getComponent, getComponentAs, getComponentAsNumber, getComponentLabel, getComponents, getField, getField, getLabel, getLabel, getLabelComponents, getLine, getValueByCodeword, getValueDisplay, getValueDisplay, hashCode, init, is, is, is, is, isEmpty, isLetterOption, isNameAnyOf, joinComponents, joinComponents, joinComponents, joinComponents, letterOption, notNull, setComponent, setComponents, toJson, toString, validNamepublic static final java.lang.String PARSER_PATTERN
@Deprecated @ProwideDeprecated(phase2=SRU2022) public static final java.lang.String COMPONENTS_PATTERN
TYPES_PATTERN instead.TYPES_PATTERN,
Constant Field Valuespublic static final java.lang.String TYPES_PATTERN
public StructuredNarrativeField()
public StructuredNarrativeField(java.lang.String value)
value - complete field value including separators and CRLFpublic void parse(java.lang.String value)
The narrative fields are modelled as a single String component containing the complete field value, with all its lines and structured content if any. The API provided for this class allows getting specific lines or specific portions of the structured narrative content with ease.
public java.lang.String getValueDisplay(int component,
java.util.Locale locale)
FieldgetValueDisplay in class Fieldcomponent - number of the component to displaylocale - optional locale to format date and amounts, if null, the default locale is usedpublic java.lang.String getValue()
public abstract java.lang.String getName()
Field@Deprecated @ProwideDeprecated(phase2=SRU2022) public final java.lang.String componentsPattern()
typesPattern() instead.componentsPattern in class FieldtypesPattern()public final java.lang.String typesPattern()
typesPattern in interface PatternContainertypesPattern in class FieldTYPES_PATTERNpublic final java.lang.String parserPattern()
parserPattern in interface PatternContainerpublic abstract java.lang.String validatorPattern()
validatorPattern in class Fieldpublic boolean isOptional(int component)
isOptional in class Fieldcomponent - component number, first component of a field is referenced as 1public boolean isGeneric()
public int componentsSize()
componentsSize in class Fieldpublic java.util.List<java.lang.String> getComponentLabels()
getComponentLabels in class FieldField.getComponentLabel(int)protected java.util.Map<java.lang.Integer,java.lang.String> getComponentMap()
getComponentMap in class Fieldpublic java.lang.String getComponent1()
public Narrative narrative()
NarrativeContainernarrative in interface NarrativeContainerNarrativeContainer.narrative()public NarrativeContainer appendLine(java.lang.String line)
NarrativeContainerThe parameter line is added to the current value without restrictions or validation. This method is intended for use cases when the internal structure of the field is well-known and you are confident of the content that is added has valid line formats for the specific field.
appendLine in interface NarrativeContainerline - a properly formatted line of content such as "/NAME/Joe Doe"NarrativeContainer.appendLine(String)public NarrativeContainer setNarrative(Narrative narrative)
NarrativeContainersetNarrative in interface NarrativeContainernarrative - a narrative instanceNarrativeContainer.setNarrative(Narrative)