public class Tag
extends java.lang.Object
implements java.io.Serializable
The "Tag" naming is used in the SWIFT standard to refer the fields identifiers composed by a number and an optional letter option, for example 32A. This class is used to model the complete field structure including both the field name ("Tag") and the field value.
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
name
Name of the tag, usually a number that may be followed by a letter.
|
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(Tag tag)
Copy constructor.
|
Tag(UnparsedTextList unparsedText)
Constructor for an unparsed text list
|
Modifier and Type | Method and Description |
---|---|
Field |
asField()
Creates a Field instance for the given Tag object.
|
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 o) |
boolean |
equalsIgnoreCR(Tag other)
Similar to
equals(Object) but ignoring carriage returns characters in tag values. |
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) |
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 |
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 |
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.String name
protected java.lang.String value
protected UnparsedTextList unparsedTexts
public Tag()
public Tag(Tag tag)
tag
- source tag to copy content frompublic Tag(java.lang.String inner)
If inner contains one ':' character, the string before is set as the tag name and the rest as the value. If inner contains more than one ':' characters, then the first value is used as previously described. If no ':' character is found the whole string is set as the tag value and the tag name is kept null (useful for bloc data)
Maps:
"" -> 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 is 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()
public void setValue(java.lang.String value)
value
- the value for the tag, may be nullpublic java.lang.String toString()
toString
in class java.lang.Object
protected 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 boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public 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 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)
public java.lang.String getLetterOption()
Character.isLetter(char)
public boolean contains(java.lang.String... values)
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)
public boolean contains(java.lang.String searchStr)
public Field asField()
Field.getField(Tag)