Package com.pixelmed.network

# Class CompositeResponseHandler

java.lang.Object
com.pixelmed.network.ReceivedDataHandler
com.pixelmed.network.CompositeResponseHandler

Direct Known Subclasses:
  `MoveSOPClassSCU.CMoveResponseHandler`, `StorageSOPClassSCU.CStoreResponseHandler`, `VerificationSOPClassSCU.CEchoResponseHandler`

public abstract class CompositeResponseHandler extends ReceivedDataHandler

This abstract class provides a mechanism to process each PDU of a composite response as it is received, such as for evaluating the status of the response for success.

Typically a private sub-class would be declared and instantiated with overriding methods to evaluate the success or failure of a storage or query or retrieve response.

See Also:
  - `ReceivedDataHandler`
  - `StorageSOPClassSCU`
  - `FindSOPClassSCU`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected boolean`
`allowData`
`protected byte[]`
`commandReceived`
`protected byte[]`
`dataReceived`
`protected int`
`status`
`protected boolean`
`success`

### Fields inherited from class com.pixelmed.network.ReceivedDataHandler

`done, release`

## Constructor Summary

Constructors
Constructor
Description
`CompositeResponseHandler()`
Construct a handler to process each PDU of a composite response as it is received, evaluating the status of the response for success.
`CompositeResponseHandler(int debugLevel)`
Construct a handler to process each PDU of a composite response as it is received, evaluating the status of the response for success.

## Method Summary

Modifier and Type
Method
Description
`static String`
`dumpAttributeListFromCommandOrData(byte[] bytes, String transferSyntaxUID)`
Extract an `AttributeList` from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.
`protected abstract void`
`evaluateStatusAndSetSuccess(AttributeList list)`
Extract the status information from a composite response and set the status flag accordingly.
`static AttributeList`
`getAttributeListFromCommandOrData(byte[] bytes, String transferSyntaxUID)`
Extract an `AttributeList` from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.
`static AttributeList`
`getAttributeListFromCommandOrData(byte[] bytes, String transferSyntaxUID, int debugLevel)`
Extract an `AttributeList` from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.
`int`
`getStatus()`
Get the response status Valid only after first calling `evaluateStatusAndSetSuccess()`
`protected void`
`makeUseOfDataSet(AttributeList list)`
Ignore any data set in the composite response (unless this method is overridden).
`void`
`sendPDataIndication(PDataPDU pdata, Association association)`
The code handling the reception of data on an `Association` calls this method to indicate that a PDU has been received (a P-DATA-INDICATION).
`boolean`
`wasSuccessful()`
Does the response include an indication of success ?

### Methods inherited from class com.pixelmed.network.ReceivedDataHandler

`dumpPDVList, dumpPDVListToString, isDone, isToBeReleased, setDone, setRelease`

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

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

## Field Details

### commandReceived

protected byte[] commandReceived

### dataReceived

protected byte[] dataReceived

### success

protected boolean success

### allowData

protected boolean allowData

### status

protected int status

## Constructor Details

### CompositeResponseHandler

public CompositeResponseHandler(int debugLevel)
Construct a handler to process each PDU of a composite response as it is received, evaluating the status of the response for success.

Parameters:
  `debugLevel` - ignored

### CompositeResponseHandler

public CompositeResponseHandler()
Construct a handler to process each PDU of a composite response as it is received, evaluating the status of the response for success.

## Method Details

### getAttributeListFromCommandOrData

public static AttributeList getAttributeListFromCommandOrData(byte[] bytes, String transferSyntaxUID, int debugLevel) throws DicomNetworkException, DicomException, IOException
Extract an `AttributeList` from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.

Parameters:
  `bytes` - the concatenated PDU bytes up to and including the last fragment
  `transferSyntaxUID` - the Transfer Syntax to use to interpret the bytes
  `debugLevel` - ignored
Throws:
  `IOException`
  `DicomException`
  `DicomNetworkException`

### getAttributeListFromCommandOrData

public static AttributeList getAttributeListFromCommandOrData(byte[] bytes, String transferSyntaxUID) throws DicomNetworkException, DicomException, IOException
Extract an `AttributeList` from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.

Parameters:
  `bytes` - the concatenated PDU bytes up to and including the last fragment
  `transferSyntaxUID` - the Transfer Syntax to use to interpret the bytes
Throws:
  `IOException`
  `DicomException`
  `DicomNetworkException`

### dumpAttributeListFromCommandOrData

public static String dumpAttributeListFromCommandOrData(byte[] bytes, String transferSyntaxUID) throws DicomNetworkException, DicomException, IOException
Extract an `AttributeList` from the concatenated bytes that have been assembled from one or more PDUs and which make up an entire Command or Dataset.

Parameters:
  `bytes` - the concatenated PDU bytes up to and including the last fragment
  `transferSyntaxUID` - the Transfer Syntax to use to interpret the bytes
Throws:
  `IOException`
  `DicomException`
  `DicomNetworkException`

### sendPDataIndication

public void sendPDataIndication(PDataPDU pdata, Association association) throws DicomNetworkException, DicomException, IOException
The code handling the reception of data on an `Association` calls this method to indicate that a PDU has been received (a P-DATA-INDICATION).

Specified by:
  `sendPDataIndication` in class `ReceivedDataHandler`
Parameters:
  `pdata` - the PDU that was received
  `association` - the association on which the PDU was received
Throws:
  `IOException`
  `DicomException`
  `DicomNetworkException`

### evaluateStatusAndSetSuccess

protected abstract void evaluateStatusAndSetSuccess(AttributeList list)
Extract the status information from a composite response and set the status flag accordingly.

Parameters:
  `list` - the list of Attributes extracted from the bytes of the PDU(s)

### makeUseOfDataSet

protected void makeUseOfDataSet(AttributeList list)
Ignore any data set in the composite response (unless this method is overridden).

Parameters:
  `list` - the list of Attributes extracted from the bytes of the PDU(s)

### wasSuccessful

public boolean wasSuccessful()
Does the response include an indication of success ?

### getStatus

public int getStatus()
Get the response status Valid only after first calling `evaluateStatusAndSetSuccess()`