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:
Attribute
,AttributeFactory
,AttributeList
-
-
Field Summary
Fields Modifier and Type Field Description protected long[]
byteOffsets
protected boolean
deleteFilesWhenNoLongerNeeded
protected java.io.File[]
files
protected long[]
lengths
-
Fields inherited from class com.pixelmed.dicom.Attribute
valueLength, valueMultiplicity
-
-
Constructor Summary
Constructors Constructor Description OtherByteAttributeMultipleFilesOnDisk(AttributeTag t)
Construct an (empty) attribute.OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, java.io.File[] files)
Read an attribute from a set of files.OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, java.io.File[] files, long[] byteOffsets, long[] lengths)
Read an attribute from a set of files.OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, java.lang.String[] fileNames)
Read an attribute from a set of files.OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, java.lang.String[] fileNames, long[] byteOffsets, long[] lengths)
Read an attribute from a set of files.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
deleteFilesWhenNoLongerNeeded()
protected void
finalize()
long[]
getByteOffsets()
byte[]
getByteValues()
Get the values of this attribute as a byte array.java.io.File[]
getFiles()
long[]
getLengths()
long
getPaddedVL()
Get the value length of this attribute, accounting for the need for even-length padding.byte[]
getVR()
Get the value representation of this attribute (OB).void
removeValues()
Remove any existing values, making the attribute empty (zero length).void
setFiles(java.io.File[] files, long[] byteOffsets, long[] lengths)
java.lang.String
toString(DicomDictionary dictionary)
Dump the contents of the attribute as a human-readable string.void
write(DicomOutputStream o)
Write the entire attribute (including values) to the output stream.-
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, getLengthOfBaseOfEncodedAttribute, getLengthOfEncodedValue, getLengthOfEntireEncodedAttribute, getLongValues, getLongValues, getLongValues, getOriginalStringValues, 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, getVRAsString, isValid, repairValues, setValue, setValue, setValue, setValue, setValue, setValue, setValue, setValues, setValues, setValues, setValues, setValues, setValues, setValues, toString, writeBase
-
-
-
-
Constructor Detail
-
OtherByteAttributeMultipleFilesOnDisk
public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t)
Construct an (empty) attribute.
- Parameters:
t
- the tag of the attribute
-
OtherByteAttributeMultipleFilesOnDisk
public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, java.io.File[] files, long[] byteOffsets, long[] lengths) throws java.io.IOException, DicomException
Read an attribute from a set of files.
- Parameters:
t
- the tag of the attributefiles
- the input filesbyteOffsets
- the byte offsets in the files of the start of the data, one entry for each file, or null if 0 for all fileslengths
- 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:
java.io.IOException
DicomException
-
OtherByteAttributeMultipleFilesOnDisk
public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, java.lang.String[] fileNames, long[] byteOffsets, long[] lengths) throws java.io.IOException, DicomException
Read an attribute from a set of files.
- Parameters:
t
- the tag of the attributefileNames
- the input filesbyteOffsets
- the byte offsets in the files of the start of the data, one entry for each file, or null if 0 for all fileslengths
- 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:
java.io.IOException
DicomException
-
OtherByteAttributeMultipleFilesOnDisk
public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, java.io.File[] files) throws java.io.IOException, DicomException
Read an attribute from a set of files.
- Parameters:
t
- the tag of the attributefiles
- the input files- Throws:
java.io.IOException
DicomException
-
OtherByteAttributeMultipleFilesOnDisk
public OtherByteAttributeMultipleFilesOnDisk(AttributeTag t, java.lang.String[] fileNames) throws java.io.IOException, DicomException
Read an attribute from a set of files.
- Parameters:
t
- the tag of the attributefileNames
- the input files- Throws:
java.io.IOException
DicomException
-
-
Method Detail
-
getFiles
public java.io.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(java.io.File[] files, long[] byteOffsets, long[] lengths) throws java.io.IOException
- Parameters:
files
- the input filesbyteOffsets
- the byte offsets in the files of the start of the data, one entry for each file, or null if 0 for all fileslengths
- 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:
java.io.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 classAttribute
- Returns:
- the value length (padded to an even length)
-
write
public void write(DicomOutputStream o) throws DicomException, java.io.IOException
Description copied from class:Attribute
Write the entire attribute (including values) to the output stream.
- Specified by:
write
in classAttribute
- Parameters:
o
-- Throws:
java.io.IOException
DicomException
-
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>
-
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 classAttribute
- 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 classAttribute
-
deleteFilesWhenNoLongerNeeded
public void deleteFilesWhenNoLongerNeeded()
-
finalize
protected void finalize() throws java.lang.Throwable
- Throws:
java.lang.Throwable
-
getVR
public byte[] getVR()
Get the value representation of this attribute (OB).
- Overrides:
getVR
in classAttribute
- Returns:
- 'O','B' in ASCII as a two byte array; see
ValueRepresentation
-
-