Class OtherByteAttributeMultipleFilesOnDisk

java.lang.Object
com.pixelmed.dicom.Attribute
com.pixelmed.dicom.OtherByteAttributeMultipleFilesOnDisk

public class OtherByteAttributeMultipleFilesOnDisk extends Attribute

A concrete class specializing Attribute for Other Byte (OB) attributes whose values are not memory resident but rather are stored in multiple files on disk.

See Also:
  • Field Details

    • files

      protected File[] files
    • byteOffsets

      protected long[] byteOffsets
    • lengths

      protected long[] lengths
    • deleteFilesWhenNoLongerNeeded

      protected boolean deleteFilesWhenNoLongerNeeded
  • Constructor Details

    • OtherByteAttributeMultipleFilesOnDisk

      public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t)

      Construct an (empty) attribute.

      Parameters:
      t - the tag of the attribute
    • OtherByteAttributeMultipleFilesOnDisk

      public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, File[] files, long[] byteOffsets, long[] lengths) throws IOException, DicomException

      Read an attribute from a set of files.

      Parameters:
      t - the tag of the attribute
      files - the input files
      byteOffsets - the byte offsets in the files of the start of the data, one entry for each file, or null if 0 for all files
      lengths - the lengths in the files from the the start of the data, one entry for each file, or null if the remaining file length after the byteOffset, if any
      Throws:
      IOException
      DicomException
    • OtherByteAttributeMultipleFilesOnDisk

      public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, String[] fileNames, long[] byteOffsets, long[] lengths) throws IOException, DicomException

      Read an attribute from a set of files.

      Parameters:
      t - the tag of the attribute
      fileNames - the input files
      byteOffsets - the byte offsets in the files of the start of the data, one entry for each file, or null if 0 for all files
      lengths - the lengths in the files from the the start of the data, one entry for each file, or null if the remaining file length after the byteOffset, if any
      Throws:
      IOException
      DicomException
    • OtherByteAttributeMultipleFilesOnDisk

      public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, File[] files) throws IOException, DicomException

      Read an attribute from a set of files.

      Parameters:
      t - the tag of the attribute
      files - the input files
      Throws:
      IOException
      DicomException
    • OtherByteAttributeMultipleFilesOnDisk

      public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, String[] fileNames) throws IOException, DicomException

      Read an attribute from a set of files.

      Parameters:
      t - the tag of the attribute
      fileNames - the input files
      Throws:
      IOException
      DicomException
  • Method Details

    • getFiles

      public File[] getFiles()
      Returns:
      the files containing the data
    • getByteOffsets

      public long[] getByteOffsets()
      Returns:
      the per-file byte offsets to the frame data
    • getLengths

      public long[] getLengths()
      Returns:
      the per-file lengths of the data for each frame (after the byte offset) in bytes
    • setFiles

      public void setFiles(File[] files, long[] byteOffsets, long[] lengths) throws IOException
      Parameters:
      files - the input files
      byteOffsets - the byte offsets in the files of the start of the data, one entry for each file, or null if 0 for all files
      lengths - the lengths in the files from the the start of the data, one entry for each file, or null if the remaining file length after the byteOffset, if any
      Throws:
      IOException
    • 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 -
      Throws:
      IOException
      DicomException
    • 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

      Get the values of this attribute as a byte array.

      This allocates a new array of sufficient length, which may fail if it is too large, and defeats the point of leaving the byte values on disk in the first place. However, it is a fallback for when the caller does not want to go to the trouble of creating a MappedByteBuffer from the file, or more likely is not even aware that the attribute values have been left on disk.

      Overrides:
      getByteValues in class Attribute
      Returns:
      the values as an array of bytes
      Throws:
      DicomException - thrown if values cannot be read
    • removeValues

      public void removeValues()
      Description copied from class: Attribute

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

      Specified by:
      removeValues in class Attribute
    • deleteFilesWhenNoLongerNeeded

      public void deleteFilesWhenNoLongerNeeded()
    • finalize

      protected void finalize() throws Throwable
      Throws:
      Throwable
    • getVR

      public byte[] getVR()

      Get the value representation of this attribute (OB).

      Overrides:
      getVR in class Attribute
      Returns:
      'O','B' in ASCII as a two byte array; see ValueRepresentation