Class TextAttribute

java.lang.Object
com.pixelmed.dicom.Attribute
com.pixelmed.dicom.TextAttribute
Direct Known Subclasses:
LongTextAttribute, ShortTextAttribute, UnlimitedTextAttribute

public abstract class TextAttribute extends Attribute

An abstract class specializing Attribute for the family of text attributes.

  • Field Details

  • Constructor Details

    • TextAttribute

      protected TextAttribute(AttributeTag t)

      Construct an (empty) attribute; called only by concrete sub-classes.

      Parameters:
      t - the tag of the attribute
    • TextAttribute

      protected TextAttribute(AttributeTag t, SpecificCharacterSet specificCharacterSet)

      Construct an (empty) attribute; called only by concrete sub-classes.

      Parameters:
      t - the tag of the attribute
      specificCharacterSet - the character set to be used for the text
    • TextAttribute

      protected TextAttribute(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 attribute
      vl - the value length of the attribute
      i - the input stream
      specificCharacterSet - the character set to be used for the text
      Throws:
      IOException - if an I/O error occurs
      DicomException - if error in DICOM encoding
    • TextAttribute

      protected TextAttribute(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 attribute
      vl - the value length of the attribute
      i - the input stream
      specificCharacterSet - the character set to be used for the text
      Throws:
      IOException - if an I/O error occurs
      DicomException - if error in DICOM encoding
  • Method Details

    • getMaximumLengthOfEntireValue

      public abstract int getMaximumLengthOfEntireValue()
    • translateByteArrayToString

      protected String translateByteArrayToString(byte[] bytes, int offset, int length)

      Decode a byte array into a string.

      Parameters:
      bytes - the byte buffer in which the encoded string is located
      offset - the offset into the buffer
      length - the number of bytes to be decoded
      Returns:
      the string decoded according to the specified or default specific character set
    • translateStringToByteArray

      protected byte[] translateStringToByteArray(String string) throws UnsupportedEncodingException

      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 by the host platform
    • 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 class Attribute
      Returns:
      the value length (padded to an even length)
    • write

      public void write(DicomOutputStream o) throws DicomException, IOException
      Description copied from class: Attribute

      Write the entire attribute (including values) to the output stream.

      Specified by:
      write in class Attribute
      Parameters:
      o - the output stream
      Throws:
      DicomException - if error in DICOM encoding
      IOException - if an I/O error occurs
    • toString

      public String toString(DicomDictionary dictionary)
      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>
       
      Overrides:
      toString in class Attribute
      Parameters:
      dictionary - the dictionary to use to look up the name
      Returns:
      a single String value
    • getByteValues

      public byte[] getByteValues() throws DicomException
      Description copied from class: Attribute

      Get the values of this attribute as a byte array, if the values are byte order insensitive.

      Overrides:
      getByteValues in class Attribute
      Returns:
      the values as an array of bytes
      Throws:
      DicomException - thrown if values are not available (such as not supported for this concrete attribute class)
    • getStringValues

      public String[] getStringValues(NumberFormat format) throws DicomException
      Description copied from class: Attribute

      Get the values of this attribute as strings.

      The strings may have been cleaned up into a canonical form, such as to remove padding as well as numbers formatted.

      Overrides:
      getStringValues in class Attribute
      Parameters:
      format - the format to use for each numerical or decimal value
      Returns:
      the values as an array of String
      Throws:
      DicomException - thrown if values are not available (such as not supported for this concrete attribute class)
    • addValue

      public void addValue(String v) throws DicomException
      Description copied from class: Attribute
      Add a(nother) String value after any existing values of this attribute.
      Overrides:
      addValue in class Attribute
      Parameters:
      v - value to add
      Throws:
      DicomException - thrown if value of this type is not valid for this concrete attribute class
    • removeValues

      public void removeValues() throws DicomException
      Description copied from class: Attribute

      Remove any existing values, making the attribute empty (zero length).

      Specified by:
      removeValues in class Attribute
      Throws:
      DicomException - thrown if not supported for concrete attribute class
    • isValid

      public boolean isValid() throws DicomException
      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 class Attribute
      Returns:
      true if valid, false if invalid or validation not supported for the attribute type
      Throws:
      DicomException - if error in DICOM value extraction
    • repairValues

      public boolean repairValues() throws DicomException
      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 class Attribute
      Returns:
      true if successfully repaired or was already valid
      Throws:
      DicomException - if error in DICOM value extraction