Package com.pixelmed.dicom

# Class OtherAttributeOnDisk

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

Direct Known Subclasses:
  `OtherByteAttributeCompressedSeparateFramesOnDisk`, `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
Description
`protected long`
`byteOffset`
`protected boolean`
`deleteFilesWhenNoLongerNeeded`
`protected File`
`file`

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

`valueLength, valueMultiplicity`

## Constructor Summary

Constructors
Constructor
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, File file, boolean deleteFilesWhenNoLongerNeeded)`
Read an attribute from a file.
`OtherAttributeOnDisk(AttributeTag t, Long vl, DicomInputStream i, Long byteOffset)`
Read an attribute from an input stream.

## Method Summary

Modifier and Type
Method
Description
`void`
`deleteFilesWhenNoLongerNeeded()`
`protected void`
`finalize()`
`long`
`getByteOffset()`
`File`
`getFile()`
`void`
`removeValues()`
Remove any existing values, making the attribute empty (zero length).
`void`
`setFile(File file)`
Change the file containing the data, for example if it has been renamed.
`void`
`setFile(File file, long byteOffset)`
Change the file containing the data, for example if it is a new, perhaps temporary, file containing only pixel data.
`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, 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, getLengthOfBaseOfEncodedAttribute, getLengthOfEncodedValue, getLengthOfEntireEncodedAttribute, 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, setValues, setValues, setValues, toString, write, writeBase`

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

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

## Field Details

### byteOffset

protected long byteOffset

### file

protected File file

### deleteFilesWhenNoLongerNeeded

protected boolean deleteFilesWhenNoLongerNeeded

## Constructor Details

### OtherAttributeOnDisk

public OtherAttributeOnDisk(AttributeTag t)

Construct an (empty) attribute.

Parameters:
  `t` - the tag of the attribute

### OtherAttributeOnDisk

public OtherAttributeOnDisk(AttributeTag t, File file, boolean deleteFilesWhenNoLongerNeeded) throws IOException, DicomException

Read an attribute from a file.

Parameters:
  `t` - the tag of the attribute
  `file` - the file containing the data
  `deleteFilesWhenNoLongerNeeded` - delete file when attribute goes out of scope
Throws:
  `IOException` - if an I/O error occurs
  `DicomException` - if error in DICOM encoding

### OtherAttributeOnDisk

public OtherAttributeOnDisk(AttributeTag t, long vl, DicomInputStream i, long byteOffset) throws 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:
  `IOException` - if an I/O error occurs
  `DicomException` - if error in DICOM encoding

### OtherAttributeOnDisk

public OtherAttributeOnDisk(AttributeTag t, Long vl, DicomInputStream i, Long byteOffset) throws 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:
  `IOException` - if an I/O error occurs
  `DicomException` - if error in DICOM encoding

## Method Details

### 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

### getByteOffset

public long getByteOffset()

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

### getFile

public File getFile()

Returns:
  the file containing the data

### setFile

public void setFile(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(File file, long byteOffset) throws 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:
  `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 Throwable

Throws:
  `Throwable`