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.
|
getByteValues, 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, getLengthOfEncodedValue, 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, 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, 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 occursprotected 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 textpublic void addValue(byte 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 addValue(float 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(short v) throws DicomException
Attribute
addValue
in class Attribute
v
- value to addDicomException
- 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 encodingprotected boolean allowRepairOfIncorrectLength()
protected boolean allowRepairOfInvalidCharacterReplacement()
public boolean areCharactersInValuesValid() throws DicomException
DicomException
public boolean areLengthsOfValuesValid() throws DicomException
DicomException
public boolean areValuesWellFormed() throws DicomException
DicomException
protected void flushCachedCopies()
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 double[] getDoubleValues() throws DicomException
Attribute
Get the values of this attribute as a double array.
getDoubleValues
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 int[] getIntegerValues() throws DicomException
Attribute
Get the values of this attribute as an int array.
getIntegerValues
in class Attribute
DicomException
- not thrownprotected char getInvalidCharacterReplacement()
public long[] getLongValues() throws DicomException
Attribute
Get the values of this attribute as a long array.
getLongValues
in class Attribute
DicomException
- not thrownpublic abstract int getMaximumLengthOfSingleValue()
public 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 thrownprotected byte getPadByte()
Get the appropriate byte for padding a string to an even length.
public long getPaddedVL()
Attribute
Get the value length of this attribute, accounting for the need for even-length padding.
getPaddedVL
in class Attribute
public short[] getShortValues() throws DicomException
Attribute
Get the values of this attribute as a short array.
getShortValues
in class Attribute
DicomException
- not thrownpublic SpecificCharacterSet getSpecificCharacterSet()
Get the specific character set for this attribute.
public 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 boolean isCharacterInValueValid(int c) throws DicomException
DicomException
public boolean isValid() throws DicomException
Attribute
isValid
in class Attribute
DicomException
- if error in DICOM value extractionpublic void removeValues() throws DicomException
Attribute
Remove any existing values, making the attribute empty (zero length).
removeValues
in class Attribute
DicomException
- not thrownpublic boolean repairValues() throws DicomException
Attribute
repairValues
in class Attribute
DicomException
- if error in DICOM value extractionpublic void setSpecificCharacterSet(SpecificCharacterSet specificCharacterSet)
Set the specific character set for this attribute.
specificCharacterSet
- the specific character set, or null if nonepublic 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>
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 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 occurs