Class AttributeFactory
- java.lang.Object
-
- com.pixelmed.dicom.AttributeFactory
-
public class AttributeFactory extends java.lang.Object
The
AttributeFactory
class is a factory class of static methods for creating concrete instances of the abstract classAttribute
based on their value representation.This class is primarily used when reading a parsing a DICOM dataset, and needing to create attributes based on their value representation, either from a dictionary or from the explicit value representation in the dataset.
- See Also:
Attribute
,AttributeList
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Class
getClassOfAttributeFromValueRepresentation(AttributeTag tag, byte[] vr, boolean explicit, int bytesPerSample, boolean leaveOtherDataOnDisk, boolean isSignedPixelRepresentation)
A static method to determine theClass
appropriate for storing an attribute based on the supplied value representation.static java.lang.Class
getClassOfAttributeFromValueRepresentation(AttributeTag tag, byte[] vr, boolean explicit, int bytesPerSample, long vl, boolean isFile, boolean isSignedPixelRepresentation)
A static method to determine theClass
appropriate for storing an attribute based on the supplied value representation.static Attribute
newAttribute(AttributeTag tag)
A static method to create anAttribute
based on the value representation from the standard dictionary.static Attribute
newAttribute(AttributeTag tag, byte[] vr)
A static method to create anAttribute
based on the supplied value representation.static Attribute
newAttribute(AttributeTag tag, byte[] vr, boolean explicit, int bytesPerSample)
A static method to create anAttribute
based on the supplied value representation.static Attribute
newAttribute(AttributeTag tag, byte[] vr, long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample, long byteOffset)
A static method to create and read anAttribute
from aDicomInputStream
.static Attribute
newAttribute(AttributeTag tag, byte[] vr, long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample, long byteOffset, boolean isSignedPixelRepresentation)
A static method to create and read anAttribute
from aDicomInputStream
.static Attribute
newAttribute(AttributeTag tag, byte[] vr, SpecificCharacterSet specificCharacterSet)
A static method to create anAttribute
based on the supplied value representation.static Attribute
newAttribute(AttributeTag tag, byte[] vr, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample)
A static method to create anAttribute
based on the supplied value representation.static Attribute
newAttribute(AttributeTag tag, byte[] vr, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample, boolean isSignedPixelRepresentation)
A static method to create anAttribute
based on the supplied value representation.
-
-
-
Method Detail
-
getClassOfAttributeFromValueRepresentation
public static java.lang.Class getClassOfAttributeFromValueRepresentation(AttributeTag tag, byte[] vr, boolean explicit, int bytesPerSample, boolean leaveOtherDataOnDisk, boolean isSignedPixelRepresentation)
A static method to determine the
Class
appropriate for storing an attribute based on the supplied value representation.- Parameters:
tag
- theAttributeTag
tag of the attribute (to check whether or not pixel data)vr
- the value representation of the attributeexplicit
- a flag indicating that the stream to read or write uses explicit value representation (affects pixel data encoding choice)bytesPerSample
- 1 or 2 bytes per sample indicating whether to use OB or OW for pixel dataleaveOtherDataOnDisk
- whether or not to leave OB or OW on disk or read it into memoryisSignedPixelRepresentation
- the PixelRepresentation is signed (needed to choose VR for US/SS VR data elements)- Returns:
- the class appropriate for the attribute
-
getClassOfAttributeFromValueRepresentation
public static java.lang.Class getClassOfAttributeFromValueRepresentation(AttributeTag tag, byte[] vr, boolean explicit, int bytesPerSample, long vl, boolean isFile, boolean isSignedPixelRepresentation)
A static method to determine the
Class
appropriate for storing an attribute based on the supplied value representation.- Parameters:
tag
- theAttributeTag
tag of the attribute (to check whether or not pixel data)vr
- the value representation of the attributeexplicit
- a flag indicating that the stream to read or write uses explicit value representation (affects pixel data encoding choice)bytesPerSample
- 1 or 2 bytes per sample indicating whether to use OB or OW for pixel datavl
- the value length, used to decide whether or not to leave OB or OW on disk (if in a file) or read it into memoryisFile
- the attribute is stored in a fileisSignedPixelRepresentation
- the PixelRepresentation is signed (needed to choose VR for US/SS VR data elements)- Returns:
- the class appropriate for the attribute
-
newAttribute
public static Attribute newAttribute(AttributeTag tag) throws DicomException
A static method to create an
Attribute
based on the value representation from the standard dictionary.Will return a UN attribute if the tag is unrecognized.
The PixelRepresentation is assumed to be unsigned (US will be used for US/SS VR data elements).
- Parameters:
tag
- theAttributeTag
tag of the attribute to create- Returns:
- the attribute of an appropriate class, with no value
- Throws:
DicomException
- if cannot instantiate a new attribute
-
newAttribute
public static Attribute newAttribute(AttributeTag tag, byte[] vr) throws DicomException
A static method to create an
Attribute
based on the supplied value representation.The PixelRepresentation is assumed to be unsigned (US will be used for US/SS VR data elements if the supplied VR from the dictionary is 'XS').
- Parameters:
tag
- theAttributeTag
tag of the attribute to createvr
- the value representation of the attribute to create (such as read from the stream, or from the dictionary)- Returns:
- the attribute of an appropriate class, with no value
- Throws:
DicomException
- if cannot instantiate a new attribute
-
newAttribute
public static Attribute newAttribute(AttributeTag tag, byte[] vr, SpecificCharacterSet specificCharacterSet) throws DicomException
A static method to create an
Attribute
based on the supplied value representation.The PixelRepresentation is assumed to be unsigned (US will be used for US/SS VR data elements if the supplied VR from the dictionary is 'XS').
- Parameters:
tag
- theAttributeTag
tag of the attribute to createvr
- the value representation of the attribute to create (such as read from the stream, or from the dictionary)specificCharacterSet
- theSpecificCharacterSet
to be used text values- Returns:
- the attribute of an appropriate class, with no value
- Throws:
DicomException
- if cannot instantiate a new attribute
-
newAttribute
public static Attribute newAttribute(AttributeTag tag, byte[] vr, boolean explicit, int bytesPerSample) throws DicomException
A static method to create an
Attribute
based on the supplied value representation.The PixelRepresentation is assumed to be unsigned (US will be used for US/SS VR data elements if the supplied VR from the dictionary is 'XS').
- Parameters:
tag
- theAttributeTag
tag of the attribute to createvr
- the value representation of the attribute to create (such as read from the stream, or from the dictionary)explicit
- a flag indicating that the stream is explicit value representation (affects pixel data encoding choice)bytesPerSample
- 1 or 2 bytes per sample indicating whether to use OB or OW for pixel data- Returns:
- the attribute of an appropriate class, with no value
- Throws:
DicomException
- if cannot instantiate a new attribute
-
newAttribute
public static Attribute newAttribute(AttributeTag tag, byte[] vr, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample, boolean isSignedPixelRepresentation) throws DicomException
A static method to create an
Attribute
based on the supplied value representation.- Parameters:
tag
- theAttributeTag
tag of the attribute to createvr
- the value representation of the attribute to create (such as read from the stream, or from the dictionary)specificCharacterSet
- theSpecificCharacterSet
to be used text valuesexplicit
- a flag indicating that the stream is explicit value representation (affects pixel data encoding choice)bytesPerSample
- 1 or 2 bytes per sample indicating whether to use OB or OW for pixel dataisSignedPixelRepresentation
- the PixelRepresentation is signed (needed to choose VR for US/SS VR data elements)- Returns:
- the attribute of an appropriate class, with no value
- Throws:
DicomException
- if cannot instantiate a new attribute
-
newAttribute
public static Attribute newAttribute(AttributeTag tag, byte[] vr, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample) throws DicomException
A static method to create an
Attribute
based on the supplied value representation.The PixelRepresentation is assumed to be unsigned (US will be used for US/SS VR data elements).
- Parameters:
tag
- theAttributeTag
tag of the attribute to createvr
- the value representation of the attribute to create (such as read from the stream, or from the dictionary)specificCharacterSet
- theSpecificCharacterSet
to be used text valuesexplicit
- a flag indicating that the stream is explicit value representation (affects pixel data encoding choice)bytesPerSample
- 1 or 2 bytes per sample indicating whether to use OB or OW for pixel data- Returns:
- the attribute of an appropriate class, with no value
- Throws:
DicomException
- if cannot instantiate a new attribute
-
newAttribute
public static Attribute newAttribute(AttributeTag tag, byte[] vr, long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample, long byteOffset, boolean isSignedPixelRepresentation) throws DicomException
A static method to create and read an
Attribute
from aDicomInputStream
.The stream is left positioned at the start of the next attribute.
- Parameters:
tag
- theAttributeTag
tag of the attribute to create (already read from the stream)vr
- the value representation of the attribute to create (already read from the stream, if present, else from the dictionary)vl
- the value length of the attribute to create (already read from the stream)i
- theDicomInputStream
to read the attribute from, positioned at the start of the value(s) to readspecificCharacterSet
- theSpecificCharacterSet
to be used text valuesexplicit
- a flag indicating that the stream is explicit value representation (affects pixel data encoding choice)bytesPerSample
- 1 or 2 bytes per sample indicating whether to use OB or OW for pixel databyteOffset
- the byte offset from the beginning of theDicomInputStream
isSignedPixelRepresentation
- the PixelRepresentation is signed (needed to choose VR for US/SS VR data elements)- Returns:
- the attribute of an appropriate class populated with the value(s) read from the stream
- Throws:
DicomException
- if cannot instantiate a new attribute
-
newAttribute
public static Attribute newAttribute(AttributeTag tag, byte[] vr, long vl, DicomInputStream i, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample, long byteOffset) throws DicomException
A static method to create and read an
Attribute
from aDicomInputStream
.The stream is left positioned at the start of the next attribute.
The PixelRepresentation is assumed to be unsigned (US will be used for US/SS VR data elements).
- Parameters:
tag
- theAttributeTag
tag of the attribute to create (already read from the stream)vr
- the value representation of the attribute to create (already read from the stream, if present, else from the dictionary)vl
- the value length of the attribute to create (already read from the stream)i
- theDicomInputStream
to read the attribute from, positioned at the start of the value(s) to readspecificCharacterSet
- theSpecificCharacterSet
to be used text valuesexplicit
- a flag indicating that the stream is explicit value representation (affects pixel data encoding choice)bytesPerSample
- 1 or 2 bytes per sample indicating whether to use OB or OW for pixel databyteOffset
- the byte offset from the beginning of theDicomInputStream
- Returns:
- the attribute of an appropriate class populated with the value(s) read from the stream
- Throws:
DicomException
- if cannot instantiate a new attribute
-
-