public abstract class StringAttribute extends Attribute
An abstract class specializing Attribute
for
the family of string attributes.
Modifier and Type | Field and Description |
---|---|
protected SpecificCharacterSet |
specificCharacterSet |
valueLength, valueMultiplicity
Modifier | Constructor and Description |
---|---|
protected |
StringAttribute(AttributeTag t)
Construct an (empty) attribute; called only by concrete sub-classes.
|
protected |
StringAttribute(AttributeTag t,
long vl,
DicomInputStream i)
Read an attribute from an input stream; called only by concrete sub-classes.
|
protected |
StringAttribute(AttributeTag t,
java.lang.Long vl,
DicomInputStream i)
Read an attribute from an input stream; called only by concrete sub-classes.
|
protected |
StringAttribute(AttributeTag t,
long vl,
DicomInputStream i,
SpecificCharacterSet specificCharacterSet)
Read an attribute from an input stream; called only by concrete sub-classes.
|
protected |
StringAttribute(AttributeTag t,
java.lang.Long vl,
DicomInputStream i,
SpecificCharacterSet specificCharacterSet)
Read an attribute from an input stream; called only by concrete sub-classes.
|
protected |
StringAttribute(AttributeTag t,
SpecificCharacterSet specificCharacterSet)
Construct an (empty) attribute; called only by concrete sub-classes.
|
Modifier and Type | Method and Description |
---|---|
void |
addValue(byte v)
Add a(nother) byte value after any existing values of this attribute.
|
void |
addValue(double v)
Add a(nother) double value after any existing values of this attribute.
|
void |
addValue(float v)
Add a(nother) float value after any existing values of this attribute.
|
void |
addValue(int v)
Add a(nother) int value after any existing values of this attribute.
|
void |
addValue(long v)
Add a(nother) long value after any existing values of this attribute.
|
void |
addValue(short v)
Add a(nother) short value after any existing values of this attribute.
|
void |
addValue(java.lang.String v)
Add a(nother)
String value after any existing values of this attribute. |
protected boolean |
allowRepairOfIncorrectLength() |
protected boolean |
allowRepairOfInvalidCharacterReplacement() |
boolean |
areCharactersInValuesValid() |
boolean |
areLengthsOfValuesValid() |
boolean |
areValuesWellFormed() |
protected void |
flushCachedCopies() |
byte[] |
getByteValues()
Get the values of this attribute as a byte array.
|
double[] |
getDoubleValues()
Get the values of this attribute as a double array.
|
float[] |
getFloatValues()
Get the values of this attribute as a float array.
|
int[] |
getIntegerValues()
Get the values of this attribute as an int array.
|
protected char |
getInvalidCharacterReplacement() |
long[] |
getLongValues()
Get the values of this attribute as a long array.
|
abstract int |
getMaximumLengthOfSingleValue() |
java.lang.String[] |
getOriginalStringValues()
Get the values of this attribute as strings, the way they were originally inserted or read.
|
protected byte |
getPadByte()
Get the appropriate byte for padding a string to an even length.
|
long |
getPaddedVL()
Get the value length of this attribute, accounting for the need for even-length padding.
|
short[] |
getShortValues()
Get the values of this attribute as a short array.
|
SpecificCharacterSet |
getSpecificCharacterSet()
Get the specific character set for this attribute.
|
java.lang.String[] |
getStringValues(java.text.NumberFormat format)
Get the values of this attribute as strings.
|
boolean |
isCharacterInValueValid(int c) |
boolean |
isValid()
Do the values of this attribute comply with standard VR requirements?
E.g., Are only valid characters are present (for string and text attributes) and length is within limits?
|
void |
removeValues()
Remove any existing values, making the attribute empty (zero length).
|
boolean |
repairValues()
Repair any existing values of this attribute to make them comply with standard VR requirements.
|
void |
setSpecificCharacterSet(SpecificCharacterSet specificCharacterSet)
Set the specific character set for this attribute.
|
java.lang.String |
toString(DicomDictionary dictionary)
Dump the contents of the attribute as a human-readable string.
|
protected java.lang.String |
translateByteArrayToString(byte[] bytes,
int offset,
int length)
Decode a byte array into a string.
|
protected byte[] |
translateStringToByteArray(java.lang.String string)
Encode a string into a byte array.
|
void |
write(DicomOutputStream o)
Write the entire attribute (including values) to the output stream.
|
getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDoubleValues, getDoubleValues, getElement, getFloatValues, getFloatValues, getGroup, getIntegerValues, getIntegerValues, getLongValues, getLongValues, getSingleDoubleValueOrDefault, getSingleDoubleValueOrDefault, getSingleDoubleValueOrDefault, getSingleFloatValueOrDefault, getSingleFloatValueOrDefault, getSingleFloatValueOrDefault, getSingleIntegerValueOrDefault, getSingleIntegerValueOrDefault, getSingleIntegerValueOrDefault, getSingleLongValueOrDefault, getSingleLongValueOrDefault, getSingleLongValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrDefault, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrEmptyString, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getSingleStringValueOrNull, getStringValues, getStringValues, getStringValues, getStringValues, getStringValues, getTag, getVL, getVM, getVR, getVRAsString, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValues, setValues, setValues, setValues, toString, writeBase
protected SpecificCharacterSet specificCharacterSet
protected StringAttribute(AttributeTag t)
Construct an (empty) attribute; called only by concrete sub-classes.
t
- the tag of the attributeprotected StringAttribute(AttributeTag t, SpecificCharacterSet specificCharacterSet)
Construct an (empty) attribute; called only by concrete sub-classes.
t
- the tag of the attributespecificCharacterSet
- the character set to be used for the textprotected StringAttribute(AttributeTag t, long vl, DicomInputStream i) throws java.io.IOException, DicomException
Read an attribute from an input stream; called only by concrete sub-classes.
t
- the tag of the attributevl
- the value length of the attributei
- the input streamjava.io.IOException
- if an I/O error occursDicomException
- if a DICOM parsing error occursprotected StringAttribute(AttributeTag t, java.lang.Long vl, DicomInputStream i) throws java.io.IOException, DicomException
Read an attribute from an input stream; called only by concrete sub-classes.
t
- the tag of the attributevl
- the value length of the attributei
- the input streamjava.io.IOException
- if an I/O error occursDicomException
- if a DICOM parsing error occursprotected StringAttribute(AttributeTag t, long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet) throws java.io.IOException, DicomException
Read an attribute from an input stream; called only by concrete sub-classes.
t
- the tag of the attributevl
- the value length of the attributei
- the input streamspecificCharacterSet
- the character set to be used for the textjava.io.IOException
- if an I/O error occursDicomException
- if a DICOM parsing error occursprotected StringAttribute(AttributeTag t, java.lang.Long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet) throws java.io.IOException, DicomException
Read an attribute from an input stream; called only by concrete sub-classes.
t
- the tag of the attributevl
- the value length of the attributei
- the input streamspecificCharacterSet
- the character set to be used for the textjava.io.IOException
- if an I/O error occursDicomException
- if a DICOM parsing error occurspublic abstract int getMaximumLengthOfSingleValue()
public SpecificCharacterSet getSpecificCharacterSet()
Get the specific character set for this attribute.
public void setSpecificCharacterSet(SpecificCharacterSet specificCharacterSet)
Set the specific character set for this attribute.
specificCharacterSet
- the specific character set, or null if noneprotected void flushCachedCopies()
protected java.lang.String translateByteArrayToString(byte[] bytes, int offset, int length)
Decode a byte array into a string.
bytes
- the byte buffer in which the encoded string is locatedoffset
- the offset into the bufferlength
- the number of bytes to be decodedprotected byte[] translateStringToByteArray(java.lang.String string) throws java.io.UnsupportedEncodingException
Encode a string into a byte array.
string
- the string to be encodedjava.io.UnsupportedEncodingException
- if the encoding is not supportedpublic long getPaddedVL()
Attribute
Get the value length of this attribute, accounting for the need for even-length padding.
getPaddedVL
in class Attribute
protected byte getPadByte()
Get the appropriate byte for padding a string to an even length.
public void write(DicomOutputStream o) throws DicomException, java.io.IOException
Attribute
Write the entire attribute (including values) to the output stream.
write
in class Attribute
o
- the output streamjava.io.IOException
- if an I/O error occursDicomException
- if a DICOM encoding error occurspublic java.lang.String toString(DicomDictionary dictionary)
Attribute
Dump the contents of the attribute as a human-readable string.
No new line is appended.
The result is of the form:
(0xgggg,0xeeee) Name VR=<XX> VL=<0xnnnn> <...>
For example:
(0x0018,0x0020) ScanningSequence VR=<CS> VL=<0x2> <GR>
public byte[] getByteValues() throws DicomException
Get the values of this attribute as a byte array.
Returns the originally read byte values, if read from a stream, otherwise converts the string to bytes and pads them.
getByteValues
in class Attribute
DicomException
- if a DICOM parsing error occurspublic java.lang.String[] getStringValues(java.text.NumberFormat format) throws DicomException
Get the values of this attribute as strings.
The strings are first cleaned up into a canonical form, to remove leading and trailing padding.
getStringValues
in class Attribute
format
- the format to use for each numerical or decimal valueString
DicomException
- not thrownpublic java.lang.String[] getOriginalStringValues() throws DicomException
Get the values of this attribute as strings, the way they were originally inserted or read.
getOriginalStringValues
in class Attribute
String
DicomException
- not thrownpublic short[] getShortValues() throws DicomException
Attribute
Get the values of this attribute as a short array.
getShortValues
in class Attribute
DicomException
- not thrownpublic int[] getIntegerValues() throws DicomException
Attribute
Get the values of this attribute as an int array.
getIntegerValues
in class Attribute
DicomException
- not thrownpublic long[] getLongValues() throws DicomException
Attribute
Get the values of this attribute as a long array.
getLongValues
in class Attribute
DicomException
- not thrownpublic float[] getFloatValues() throws DicomException
Attribute
Get the values of this attribute as a float array.
getFloatValues
in class Attribute
DicomException
- not thrownpublic double[] getDoubleValues() throws DicomException
Attribute
Get the values of this attribute as a double array.
getDoubleValues
in class Attribute
DicomException
- not thrownpublic void addValue(java.lang.String v) throws DicomException
Attribute
String
value after any existing values of this attribute.addValue
in class Attribute
v
- value to addDicomException
- if unsupported encodingpublic void addValue(byte v) throws DicomException
Attribute
addValue
in class Attribute
v
- value to addDicomException
- not thrownpublic void addValue(short v) throws DicomException
Attribute
addValue
in class Attribute
v
- value to addDicomException
- not thrownpublic void addValue(int v) throws DicomException
Attribute
addValue
in class Attribute
v
- value to addDicomException
- not thrownpublic void addValue(long v) throws DicomException
Attribute
addValue
in class Attribute
v
- value to addDicomException
- not thrownpublic void addValue(float v) throws DicomException
Attribute
addValue
in class Attribute
v
- value to addDicomException
- not thrownpublic void addValue(double v) throws DicomException
Attribute
addValue
in class Attribute
v
- value to addDicomException
- not thrownpublic void removeValues() throws DicomException
Attribute
Remove any existing values, making the attribute empty (zero length).
removeValues
in class Attribute
DicomException
- not thrownpublic boolean areLengthsOfValuesValid() throws DicomException
DicomException
public boolean isCharacterInValueValid(int c) throws DicomException
DicomException
public boolean areCharactersInValuesValid() throws DicomException
DicomException
public boolean areValuesWellFormed() throws DicomException
DicomException
public boolean isValid() throws DicomException
Attribute
isValid
in class Attribute
DicomException
- if error in DICOM value extractionprotected boolean allowRepairOfIncorrectLength()
protected boolean allowRepairOfInvalidCharacterReplacement()
protected char getInvalidCharacterReplacement()
public boolean repairValues() throws DicomException
Attribute
repairValues
in class Attribute
DicomException
- if error in DICOM value extraction