Class StringAttribute
- Direct Known Subclasses:
AgeStringAttribute
,ApplicationEntityAttribute
,CodeStringAttribute
,DateAttribute
,DateTimeAttribute
,DecimalStringAttribute
,IntegerStringAttribute
,StringAttributeAffectedBySpecificCharacterSet
,TimeAttribute
,UniqueIdentifierAttribute
,UniversalResourceAttribute
An abstract class specializing Attribute
for
the family of string attributes.
-
Field Summary
FieldsFields inherited from class com.pixelmed.dicom.Attribute
valueLength, valueMultiplicity
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
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, 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.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, Long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet) Read an attribute from an input stream; called only by concrete sub-classes. -
Method Summary
Modifier and TypeMethodDescriptionvoid
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
Add a(nother)String
value after any existing values of this attribute.protected boolean
protected boolean
boolean
boolean
boolean
protected void
byte[]
Get the values of this attribute as a byte array.double[]
Get the values of this attribute as a double array.float[]
Get the values of this attribute as a float array.int[]
Get the values of this attribute as an int array.protected char
long[]
Get the values of this attribute as a long array.abstract int
String[]
Get the values of this attribute as strings, the way they were originally inserted or read.protected byte
Get the appropriate byte for padding a string to an even length.long
Get the value length of this attribute, accounting for the need for even-length padding.short[]
Get the values of this attribute as a short array.Get the specific character set for this attribute.String[]
getStringValues
(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
Remove any existing values, making the attribute empty (zero length).boolean
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.toString
(DicomDictionary dictionary) Dump the contents of the attribute as a human-readable string.protected String
translateByteArrayToString
(byte[] bytes, int offset, int length) Decode a byte array into a string.protected byte[]
translateStringToByteArray
(String string) Encode a string into a byte array.void
Write the entire attribute (including values) to the output stream.Methods inherited from class com.pixelmed.dicom.Attribute
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, getLengthOfBaseOfEncodedAttribute, getLengthOfEncodedValue, getLengthOfEntireEncodedAttribute, 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
-
Field Details
-
specificCharacterSet
-
-
Constructor Details
-
StringAttribute
Construct an (empty) attribute; called only by concrete sub-classes.
- Parameters:
t
- the tag of the attribute
-
StringAttribute
Construct an (empty) attribute; called only by concrete sub-classes.
- Parameters:
t
- the tag of the attributespecificCharacterSet
- the character set to be used for the text
-
StringAttribute
protected StringAttribute(AttributeTag t, long vl, DicomInputStream i) throws IOException, DicomException Read an attribute from an input stream; called only by concrete sub-classes.
- Parameters:
t
- the tag of the attributevl
- the value length of the attributei
- the input stream- Throws:
IOException
- if an I/O error occursDicomException
- if a DICOM parsing error occurs
-
StringAttribute
protected StringAttribute(AttributeTag t, Long vl, DicomInputStream i) throws IOException, DicomException Read an attribute from an input stream; called only by concrete sub-classes.
- Parameters:
t
- the tag of the attributevl
- the value length of the attributei
- the input stream- Throws:
IOException
- if an I/O error occursDicomException
- if a DICOM parsing error occurs
-
StringAttribute
protected StringAttribute(AttributeTag t, long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet) throws IOException, DicomException Read an attribute from an input stream; called only by concrete sub-classes.
- Parameters:
t
- the tag of the attributevl
- the value length of the attributei
- the input streamspecificCharacterSet
- the character set to be used for the text- Throws:
IOException
- if an I/O error occursDicomException
- if a DICOM parsing error occurs
-
StringAttribute
protected StringAttribute(AttributeTag t, Long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet) throws IOException, DicomException Read an attribute from an input stream; called only by concrete sub-classes.
- Parameters:
t
- the tag of the attributevl
- the value length of the attributei
- the input streamspecificCharacterSet
- the character set to be used for the text- Throws:
IOException
- if an I/O error occursDicomException
- if a DICOM parsing error occurs
-
-
Method Details
-
getMaximumLengthOfSingleValue
public abstract int getMaximumLengthOfSingleValue() -
getSpecificCharacterSet
Get the specific character set for this attribute.
- Returns:
- the specific character set, or null if none
-
setSpecificCharacterSet
Set the specific character set for this attribute.
- Parameters:
specificCharacterSet
- the specific character set, or null if none
-
flushCachedCopies
protected void flushCachedCopies() -
translateByteArrayToString
Decode a byte array into a string.
- Parameters:
bytes
- the byte buffer in which the encoded string is locatedoffset
- the offset into the bufferlength
- the number of bytes to be decoded- Returns:
- the string decoded according to the specified or default specific character set
-
translateStringToByteArray
Encode a string into a byte array.
- Parameters:
string
- the string to be encoded- Returns:
- the byte array encoded according to the specified or default specific character set
- Throws:
UnsupportedEncodingException
- if the encoding is not supported
-
getPaddedVL
public long getPaddedVL()Description copied from class:Attribute
Get the value length of this attribute, accounting for the need for even-length padding.
- Overrides:
getPaddedVL
in classAttribute
- Returns:
- the value length (padded to an even length)
-
getPadByte
protected byte getPadByte()Get the appropriate byte for padding a string to an even length.
- Returns:
- the byte pad value appropriate to the VR
-
write
Description copied from class:Attribute
Write the entire attribute (including values) to the output stream.
- Specified by:
write
in classAttribute
- Parameters:
o
- the output stream- Throws:
IOException
- if an I/O error occursDicomException
- if a DICOM encoding error occurs
-
toString
Description copied from class: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>
-
getByteValues
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.
- Overrides:
getByteValues
in classAttribute
- Returns:
- the values as an array of bytes
- Throws:
DicomException
- if a DICOM parsing error occurs
-
getStringValues
Get the values of this attribute as strings.
The strings are first cleaned up into a canonical form, to remove leading and trailing padding.
- Overrides:
getStringValues
in classAttribute
- Parameters:
format
- the format to use for each numerical or decimal value- Returns:
- the values as an array of
String
- Throws:
DicomException
- not thrown
-
getOriginalStringValues
Get the values of this attribute as strings, the way they were originally inserted or read.
- Overrides:
getOriginalStringValues
in classAttribute
- Returns:
- the values as an array of
String
- Throws:
DicomException
- not thrown
-
getShortValues
Description copied from class:Attribute
Get the values of this attribute as a short array.
- Overrides:
getShortValues
in classAttribute
- Returns:
- the values as an array of short
- Throws:
DicomException
- not thrown
-
getIntegerValues
Description copied from class:Attribute
Get the values of this attribute as an int array.
- Overrides:
getIntegerValues
in classAttribute
- Returns:
- the values as an array of int
- Throws:
DicomException
- not thrown
-
getLongValues
Description copied from class:Attribute
Get the values of this attribute as a long array.
- Overrides:
getLongValues
in classAttribute
- Returns:
- the values as an array of long
- Throws:
DicomException
- not thrown
-
getFloatValues
Description copied from class:Attribute
Get the values of this attribute as a float array.
- Overrides:
getFloatValues
in classAttribute
- Returns:
- the values as an array of float
- Throws:
DicomException
- not thrown
-
getDoubleValues
Description copied from class:Attribute
Get the values of this attribute as a double array.
- Overrides:
getDoubleValues
in classAttribute
- Returns:
- the values as an array of double
- Throws:
DicomException
- not thrown
-
addValue
Description copied from class:Attribute
Add a(nother)String
value after any existing values of this attribute.- Overrides:
addValue
in classAttribute
- Parameters:
v
- value to add- Throws:
DicomException
- if unsupported encoding
-
addValue
Description copied from class:Attribute
Add a(nother) byte value after any existing values of this attribute.- Overrides:
addValue
in classAttribute
- Parameters:
v
- value to add- Throws:
DicomException
- not thrown
-
addValue
Description copied from class:Attribute
Add a(nother) short value after any existing values of this attribute.- Overrides:
addValue
in classAttribute
- Parameters:
v
- value to add- Throws:
DicomException
- not thrown
-
addValue
Description copied from class:Attribute
Add a(nother) int value after any existing values of this attribute.- Overrides:
addValue
in classAttribute
- Parameters:
v
- value to add- Throws:
DicomException
- not thrown
-
addValue
Description copied from class:Attribute
Add a(nother) long value after any existing values of this attribute.- Overrides:
addValue
in classAttribute
- Parameters:
v
- value to add- Throws:
DicomException
- not thrown
-
addValue
Description copied from class:Attribute
Add a(nother) float value after any existing values of this attribute.- Overrides:
addValue
in classAttribute
- Parameters:
v
- value to add- Throws:
DicomException
- not thrown
-
addValue
Description copied from class:Attribute
Add a(nother) double value after any existing values of this attribute.- Overrides:
addValue
in classAttribute
- Parameters:
v
- value to add- Throws:
DicomException
- not thrown
-
removeValues
Description copied from class:Attribute
Remove any existing values, making the attribute empty (zero length).
- Specified by:
removeValues
in classAttribute
- Throws:
DicomException
- not thrown
-
areLengthsOfValuesValid
- Throws:
DicomException
-
isCharacterInValueValid
- Throws:
DicomException
-
areCharactersInValuesValid
- Throws:
DicomException
-
areValuesWellFormed
- Throws:
DicomException
-
isValid
Description copied from class:Attribute
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?- Overrides:
isValid
in classAttribute
- Returns:
- true if valid, false if invalid or validation not supported for the attribute type
- Throws:
DicomException
- if error in DICOM value extraction
-
allowRepairOfIncorrectLength
protected boolean allowRepairOfIncorrectLength() -
allowRepairOfInvalidCharacterReplacement
protected boolean allowRepairOfInvalidCharacterReplacement() -
getInvalidCharacterReplacement
protected char getInvalidCharacterReplacement() -
repairValues
Description copied from class:Attribute
Repair any existing values of this attribute to make them comply with standard VR requirements. E.g., truncate them if they are too long. N.B., Not all types of attribute support repair.- Overrides:
repairValues
in classAttribute
- Returns:
- true if successfully repaired or was already valid
- Throws:
DicomException
- if error in DICOM value extraction
-