com.pixelmed.dicom
Class AttributeFactory

java.lang.Object
  extended by com.pixelmed.dicom.AttributeFactory

public class AttributeFactory
extends Object

The AttributeFactory class is a factory class of static methods for creating concrete instances of the abstract class Attribute 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
static 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.
static 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.
static Attribute newAttribute(AttributeTag tag)
          A static method to create an Attribute based on the value representation from the standard dictionary.
static Attribute newAttribute(AttributeTag tag, byte[] vr)
          A static method to create an Attribute based on the supplied value representation.
static Attribute newAttribute(AttributeTag tag, byte[] vr, boolean explicit, int bytesPerSample)
          A static method to create an Attribute 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 an Attribute from a DicomInputStream.
static Attribute newAttribute(AttributeTag tag, byte[] vr, SpecificCharacterSet specificCharacterSet)
          A static method to create an Attribute based on the supplied value representation.
static Attribute newAttribute(AttributeTag tag, byte[] vr, SpecificCharacterSet specificCharacterSet, boolean explicit, int bytesPerSample)
          A static method to create an Attribute based on the supplied value representation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getClassOfAttributeFromValueRepresentation

public static 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 - the AttributeTag tag of the attribute (to check whether or not pixel data)
vr - the value representation of the attribute
explicit - 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 data
leaveOtherDataOnDisk - 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 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 - the AttributeTag tag of the attribute (to check whether or not pixel data)
vr - the value representation of the attribute
explicit - 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 data
vl - the value length, used to decide whether or not to leave OB or OW on disk (if in a file) or read it into memory
isFile - 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 - the AttributeTag tag of the attribute to create
Returns:
the attribute of an appropriate class, with no value
Throws:
DicomException

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 - the AttributeTag tag of the attribute to create
vr - 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

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 - the AttributeTag tag of the attribute to create
vr - the value representation of the attribute to create (such as read from the stream, or from the dictionary)
specificCharacterSet - the SpecificCharacterSet to be used text values
Returns:
the attribute of an appropriate class, with no value
Throws:
DicomException

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 - the AttributeTag tag of the attribute to create
vr - 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

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 - the AttributeTag tag of the attribute to create
vr - the value representation of the attribute to create (such as read from the stream, or from the dictionary)
specificCharacterSet - the SpecificCharacterSet to be used text values
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

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 a DicomInputStream.

The stream is left positioned at the start of the next attribute.

Parameters:
tag - the AttributeTag 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 - the DicomInputStream to read the attribute from, positioned at the start of the value(s) to read
specificCharacterSet - the SpecificCharacterSet to be used text values
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
byteOffset - the byte offset from the beginning of the DicomInputStream
Returns:
the attribute of an appropriate class populated with the value(s) read from the stream
Throws:
DicomException