com.pixelmed.dicom

## Class OtherAttributeOnDisk

- java.lang.Object
- - com.pixelmed.dicom.Attribute
  - - com.pixelmed.dicom.OtherAttributeOnDisk

- Direct Known Subclasses:
    OtherByteAttributeOnDisk, OtherWordAttributeOnDisk

      public abstract class OtherAttributeOnDisk
      extends Attribute

  An abstract class specializing `Attribute` for Other (OB or OW) attributes whose values are not memory resident.

  Used as a base class for `OtherByteAttributeOnDisk` and `OtherWordAttributeOnDisk`.

  See Also:
    `Attribute`, `AttributeFactory`, `AttributeList`, `OtherByteAttributeOnDisk`, `OtherWordAttributeOnDisk`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected long` | `byteOffset`
    `protected boolean` | `deleteFilesWhenNoLongerNeeded`
    `protected java.io.File` | `file`

    - ### Fields inherited from class com.pixelmed.dicom.Attribute

      `valueLength, valueMultiplicity`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OtherAttributeOnDisk(AttributeTag t)` Construct an (empty) attribute.
    `OtherAttributeOnDisk(AttributeTag t, long vl, DicomInputStream i, long byteOffset)` Read an attribute from an input stream.
    `OtherAttributeOnDisk(AttributeTag t, java.lang.Long vl, DicomInputStream i, java.lang.Long byteOffset)` Read an attribute from an input stream.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `deleteFilesWhenNoLongerNeeded()`
    `protected void` | `finalize()`
    `long` | `getByteOffset()`
    `java.io.File` | `getFile()`
    `void` | `removeValues()` Remove any existing values, making the attribute empty (zero length).
    `void` | `setFile(java.io.File file)` Change the file containing the data, for example if it has been renamed.
    `void` | `setFile(java.io.File file, long byteOffset)` Change the file containing the data, for example if it is a new, perhaps temporary, file containing only pixel data.
    `java.lang.String` | `toString(DicomDictionary dictionary)` Dump the contents of the attribute as a human-readable string.

    - ### Methods inherited from class com.pixelmed.dicom.Attribute

      `addValue, addValue, addValue, addValue, addValue, addValue, addValue, getByteValues, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrDefault, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrEmptyString, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDelimitedStringValuesOrNull, getDoubleValues, getDoubleValues, getDoubleValues, getElement, getFloatValues, getFloatValues, getFloatValues, getGroup, getIntegerValues, getIntegerValues, getIntegerValues, getLongValues, getLongValues, getLongValues, getOriginalStringValues, getPaddedVL, getShortValues, 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, getStringValues, getTag, getVL, getVM, getVR, getVRAsString, isValid, repairValues, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValues, setValues, setValues, setValues, toString, write, writeBase`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### byteOffset

          protected long byteOffset

    - #### file

          protected java.io.File file

    - #### deleteFilesWhenNoLongerNeeded

          protected boolean deleteFilesWhenNoLongerNeeded

  - ### Constructor Detail

    - #### OtherAttributeOnDisk

          public OtherAttributeOnDisk(AttributeTag t)

      Construct an (empty) attribute.

      Parameters:
        `t` - the tag of the attribute

    - #### OtherAttributeOnDisk

          public OtherAttributeOnDisk(AttributeTag t,
                                      long vl,
                                      DicomInputStream i,
                                      long byteOffset)
                               throws java.io.IOException,
                                      DicomException

      Read an attribute from an input stream.

      Parameters:
        `t` - the tag of the attribute
        `vl` - the value length of the attribute
        `i` - the input stream
        `byteOffset` - the byte offset in the input stream of the start of the data
      Throws:
        `java.io.IOException` - if an I/O error occurs
        `DicomException` - if error in DICOM encoding

    - #### OtherAttributeOnDisk

          public OtherAttributeOnDisk(AttributeTag t,
                                      java.lang.Long vl,
                                      DicomInputStream i,
                                      java.lang.Long byteOffset)
                               throws java.io.IOException,
                                      DicomException

      Read an attribute from an input stream.

      Parameters:
        `t` - the tag of the attribute
        `vl` - the value length of the attribute
        `i` - the input stream
        `byteOffset` - the byte offset in the input stream of the start of the data
      Throws:
        `java.io.IOException` - if an I/O error occurs
        `DicomException` - if error in DICOM encoding

  - ### Method Detail

    - #### toString

          public java.lang.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

    - #### getByteOffset

          public long getByteOffset()

      Returns:
        the offset from the start of the object in bytes

    - #### getFile

          public java.io.File getFile()

      Returns:
        the file containing the data

    - #### setFile

          public void setFile(java.io.File file)

      Change the file containing the data, for example if it has been renamed.

      The existing byteOffset value is unchanged.

      Parameters:
        `file` - the new file containing the data

    - #### setFile

          public void setFile(java.io.File file,
                              long byteOffset)
                       throws java.io.IOException

      Change the file containing the data, for example if it is a new, perhaps temporary, file containing only pixel data.

      The value length is set to the length of the file minus the byteOffset.

      Parameters:
        `file` - the new file containing the data
        `byteOffset` - the byte offset in the input stream of the start of the data
      Throws:
        `java.io.IOException` - if cannot obtain the length of the file

    - #### 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 java.lang.Throwable

      Overrides:
        `finalize` in class `java.lang.Object`
      Throws:
        `java.lang.Throwable`