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.
Use
typesPattern() instead |
static java.lang.String |
PARSER_PATTERN |
static java.lang.String |
TYPES_PATTERN
Types pattern
Contains a description of the type of each component
|
components, labelMap
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.
Use
typesPattern() instead |
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.
|
protected java.util.Map<java.lang.String,java.lang.Integer> |
getLabelMap()
Returns a mapping between component labels and the internal component number.
|
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, componentNameToNumber, equals, findComponentStartingWith, format, formatAccount, formatNumber, fromJson, getAsBigDecimal, getComponent, getComponent, getComponentAs, getComponentAs, getComponentAsNumber, getComponentAsNumber, getComponentLabel, getComponentLabel, getComponents, getField, getField, getLabel, getLabel, getLabelComponents, getLine, getValueByCodeword, getValueDisplay, getValueDisplay, getValueDisplay, hashCode, init, is, is, is, is, isEmpty, isLetterOption, isNameAnyOf, joinComponents, joinComponents, joinComponents, joinComponents, letterOption, notNull, setComponent, setComponent, setComponents, toJson, toString, validName
public static final java.lang.String PARSER_PATTERN
@Deprecated @ProwideDeprecated(phase3=SRU2023) public static final java.lang.String COMPONENTS_PATTERN
typesPattern()
insteadpublic 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)
Field
getValueDisplay
in class Field
component
- 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(phase3=SRU2023) public final java.lang.String componentsPattern()
typesPattern()
insteadcomponentsPattern
in class Field
public final java.lang.String typesPattern()
typesPattern
in interface PatternContainer
typesPattern
in class Field
TYPES_PATTERN
public final java.lang.String parserPattern()
parserPattern
in interface PatternContainer
public abstract java.lang.String validatorPattern()
validatorPattern
in class Field
public boolean isOptional(int component)
isOptional
in class Field
component
- component number, first component of a field is referenced as 1public boolean isGeneric()
public int componentsSize()
componentsSize
in class Field
public java.util.List<java.lang.String> getComponentLabels()
getComponentLabels
in class Field
Field.getComponentLabel(int)
protected java.util.Map<java.lang.Integer,java.lang.String> getComponentMap()
getComponentMap
in class Field
protected java.util.Map<java.lang.String,java.lang.Integer> getLabelMap()
Field
getLabelMap
in class Field
Field.getLabelMap()
public java.lang.String getComponent1()
public Narrative narrative()
NarrativeContainer
narrative
in interface NarrativeContainer
NarrativeContainer.narrative()
public NarrativeContainer appendLine(java.lang.String line)
NarrativeContainer
The 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 NarrativeContainer
line
- a properly formatted line of content such as "/NAME/Joe Doe"NarrativeContainer.appendLine(String)
public NarrativeContainer setNarrative(Narrative narrative)
NarrativeContainer
setNarrative
in interface NarrativeContainer
narrative
- a narrative instanceNarrativeContainer.setNarrative(Narrative)