public class Tag
extends java.lang.Object
implements java.io.Serializable
null;
Multiline tags are read with readline, so while swift defines \r\n to be the line terminator, the parser accepts a more wide range of line terminations. The values are stored in swift line terminators, that is always \r\n, so be aware that if a multiline field is separated with \n parse will be successfully but the returned value will be separated by \r\n
Instances of this class may have a list of unparsed texts (UnparsedTextList).
For easy access, methods have been created that first ensure the lists exists (the
real object is created and then call the base method).
However, not all the base list methods have been implemented. If you need to use not
exposed functionality, retrieve the underlying list with (see getUnparsedTexts method)
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.Long |
id
Unique identified when this tag is a persisted element
|
protected java.lang.String |
name
Name of the tag, usually a number that may be followed by a letter.
|
protected SequenceNode |
sequence
Reference to the sequence node, if any, that this tags belongs to.
|
protected java.lang.Integer |
sortKey
Indicates the position of this tag in a message when persisted.
|
protected UnparsedTextList |
unparsedTexts
List of unparsed texts.
|
protected java.lang.String |
value
Value of the corresponding tag.
|
| Constructor and Description |
|---|
Tag()
Default constructor
|
Tag(java.lang.String inner)
Create a tag from the value in inner.
|
Tag(java.lang.String tagname,
java.lang.String value)
Create a tag with the given tagname and value
|
Tag(java.lang.String tagname,
java.lang.String value,
UnparsedTextList unparsedText)
Constructor for tag name and value and an unparsed text list
|
Tag(java.lang.String inner,
UnparsedTextList unparsedText)
Constructor for tag encoded value and an unparsed text list
|
Tag(UnparsedTextList unparsedText)
Constructor for an unparsed text list
|
| Modifier and Type | Method and Description |
|---|---|
Field |
asField() |
boolean |
contains(java.lang.String... values)
Tell if this tag value contains any of the given values.
|
boolean |
contains(java.lang.String searchStr)
equivalent to StringUtils.contains(tag.getValue(), searchStr)
|
boolean |
equals(java.lang.Object obj)
Notice two tags with multiple lines as value, one using CRLF characters as line feed
and the other using just a LF character will not be reported as equals.
|
boolean |
equalsIgnoreCR(Tag other)
Similar to
equals(Object) but ignoring carriage returns characters in tag values. |
Field |
getField() |
java.lang.Long |
getId()
Get the unique identifier of the tag if it is persisted
|
java.lang.String |
getLetterOption()
Iterate the current tagname and return only letters as told by
Character.isLetter(char) |
java.lang.String |
getName()
Get the name of this tag
|
int |
getNameAsInt()
Attempt to parse the tag name as an integer.
|
java.lang.Integer |
getNumber()
Iterate the current tagname and return only number as told by
Character.isDigit(char) |
java.lang.Integer |
getSortKey()
get the sortkey of this tag
|
UnparsedTextList |
getUnparsedTexts()
returns the unparsed text list
|
java.lang.Integer |
getUnparsedTextsSize()
returns the size of the unparsed text list
|
java.lang.String |
getValue()
Get the value of the tag.
Notice that in some cases the value can be null, for example the value of the "DLM" tag in this block: {5:{CHK:F9351591947F}{SYS:1610010606VNDZBET2AXXX0019000381}{DLM:}} |
int |
hashCode() |
boolean |
isNumber(int n)
Tells if this tagname is a given number, so the integer 58 will match 58A and 58D.
|
void |
setId(java.lang.Long id)
Set the unique identifier of the tag if it is persisted
|
void |
setName(java.lang.String name)
Set the tag name
|
void |
setNameValue(java.lang.String name,
java.lang.String value)
Shorthand equivalent to calling first
setName(String) and then setValue(String) |
void |
setSortKey(java.lang.Integer sortKey)
Set the sortkey of this tag.
|
void |
setUnparsedTexts(UnparsedTextList texts)
sets the list of unparsed texts
|
void |
setValue(java.lang.String value)
Sets the value of this tag.
|
boolean |
startsWith(java.lang.String prefix)
equivalent to StringUtils.startsWith(tag.getValue(), prefix)
|
java.lang.String |
toString() |
void |
unparsedTextAddText(java.lang.String text)
adds a new unparsed text
|
void |
unparsedTextAddText(SwiftMessage message)
adds a new unparsed text from a message
|
SwiftMessage |
unparsedTextGetAsMessage(java.lang.Integer index)
get an unparsed text as a parsed swift message
|
java.lang.String |
unparsedTextGetText(java.lang.Integer index)
get an unparsed text
|
java.lang.Boolean |
unparsedTextIsMessage(java.lang.Integer index)
decides if a specific text (by index) is likely a SWIFT FIN message.
|
protected void |
unparsedTextVerify()
verifies that the unparsed text list exists
|
protected java.lang.Long id
protected java.lang.Integer sortKey
protected java.lang.String name
null.protected java.lang.String value
protected UnparsedTextList unparsedTexts
protected transient SequenceNode sequence
public Tag()
public Tag(java.lang.String inner)
null (useful for bloc data)
"" -> name=null, value=null
"foo" -> name=null, value=foo
":foo" -> name=null, value=foo
"foo:" -> name=foo, value=null
"foo:bar" -> name=foo, value=bar
inner - the string to build the tagjava.lang.IllegalArgumentException - if inner is nullpublic Tag(java.lang.String tagname,
java.lang.String value)
tagname - name of this tagvalue - the value of this tagjava.lang.IllegalArgumentException - if parameter tagname or value are nullpublic Tag(UnparsedTextList unparsedText)
unparsedText - the list of unparsed textsTag()public Tag(java.lang.String inner,
UnparsedTextList unparsedText)
inner - the string to build the tagunparsedText - the list of unparsed textsjava.lang.IllegalArgumentException - if parameter inner is nullTag(String)public Tag(java.lang.String tagname,
java.lang.String value,
UnparsedTextList unparsedText)
tagname - name of this tagvalue - the value of this tagunparsedText - the list of unparsed textsjava.lang.IllegalArgumentException - if parameter tagname or value are nullTag(String,String)public java.lang.String getName()
public void setName(java.lang.String name)
name - the name of the tag to be setjava.lang.IllegalArgumentException - if parameter name is nullpublic java.lang.String getValue()
null if the value was not setpublic void setValue(java.lang.String value)
value - the value for the tag, may be nullpublic java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.Long getId()
null if it is not a persistent objectpublic void setId(java.lang.Long id)
id - the id to be setsortKeypublic java.lang.Integer getSortKey()
sortKeypublic void setSortKey(java.lang.Integer sortKey)
sortKey - the new sortkeyprotected void unparsedTextVerify()
public UnparsedTextList getUnparsedTexts()
public void setUnparsedTexts(UnparsedTextList texts)
texts - the new list of unparsed texts (may be null)public java.lang.Integer getUnparsedTextsSize()
public java.lang.Boolean unparsedTextIsMessage(java.lang.Integer index)
index - the unparsed text numberjava.lang.IllegalArgumentException - if parameter index is nulljava.lang.IndexOutOfBoundsException - if parameter index is out of boundspublic java.lang.String unparsedTextGetText(java.lang.Integer index)
index - the unparsed text numberjava.lang.IllegalArgumentException - if parameter index is nulljava.lang.IndexOutOfBoundsException - if parameter index is out of boundspublic SwiftMessage unparsedTextGetAsMessage(java.lang.Integer index)
index - the unparsed text numberjava.lang.IllegalArgumentException - if parameter index is nullpublic void unparsedTextAddText(java.lang.String text)
text - the unparsed text to appendjava.lang.IllegalArgumentException - if parameter text is nullpublic void unparsedTextAddText(SwiftMessage message)
message - the message to be appendedjava.lang.IllegalArgumentException - if parameter message is nullpublic int hashCode()
hashCode in class java.lang.Objectpublic boolean equalsIgnoreCR(Tag other)
equals(Object) but ignoring carriage returns characters in tag values.
Meaning CRLF in any of the tags will match both CRLF in the other tag and just LF in the other tagother - another tag to comparepublic boolean equals(java.lang.Object obj)
equals in class java.lang.ObjectequalsIgnoreCR(Tag)public int getNameAsInt()
public boolean isNumber(int n)
n - the number that this tagname will be compared totrue if this tagname starts with the given number or false in any other casepublic java.lang.Integer getNumber()
Character.isDigit(char)null if no digits are foundpublic java.lang.String getLetterOption()
Character.isLetter(char)null if no letters are foundpublic Field getField()
Field.getField(Tag)public boolean contains(java.lang.String... values)
StringUtils.contains(String,String)values - variable list of values to testtrue if the value of this tag is one of the given values.
returns false in any other case, including a null or empty list of valuespublic void setNameValue(java.lang.String name,
java.lang.String value)
setName(String) and then setValue(String)name - the tagnamevalue - the tagvaluepublic boolean startsWith(java.lang.String prefix)
StringUtils.startsWith(String, String)public boolean contains(java.lang.String searchStr)
StringUtils.contains(String, String)public Field asField()
null if an error occurs