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)
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)
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, 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.
-
-
-
Method Detail
-
getClassOfAttributeFromValueRepresentation
public static java.lang.Class getClassOfAttributeFromValueRepresentation(AttributeTag tag, byte[] vr, boolean explicit, int bytesPerSample, boolean leaveOtherDataOnDisk)
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 memory- 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)
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 file- 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.
- 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.- 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.- 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.- 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) 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 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) 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
- Returns:
- the attribute of an appropriate class populated with the value(s) read from the stream
- Throws:
DicomException
- if cannot instantiate a new attribute
-
-