Package org.apache.uima.analysis_engine.service.impl

# Class ServiceDataCargo

java.lang.Object
org.apache.uima.analysis_engine.service.impl.ServiceDataCargo

All Implemented Interfaces:
  `Serializable`

public class ServiceDataCargo extends Object implements Serializable
A serializable class containing the information passed to and returned from Analysis Engine Services.

It is not required that Analysis Engine Services use this class. It is provided as a convenience for those services that communicate using binary data.

This object contains state information extracted from an `AnalysisProcessData`. The `AnalysisProcessData` object itself is not serializable, because it contains the `CAS` object. CASes are heavyweight objects and should not be created and destroyed with each network call.

Instead, to pass Analysis Process Data to a remote service, one should create a `ServiceDataCargo` and send that to the remote service.

A `ServiceDataCargo` can be unmarshalled into an existing `AnalysisProcessData` by calling the `unmarshalInto(AnalysisProcessData, boolean)` method. Alternatively, the CAS state can be unmarshalled separately by calling the `unmarshalCas(CAS, boolean)` method.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ServiceDataCargo(AnalysisProcessData aData)`
  Creates a new `SerializableAnalysisProcessData` that contains information extracted from the specified `AnalysisProcessData`.
  `ServiceDataCargo(CAS aCAS, ProcessTrace aProcessTrace)`
  Creates a new `SerializableAnalysisProcessData` that contains the given `CAS` and `ProcessTrace`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ProcessTrace`
  `getProcessTrace()`
  Gets the ProcessTrace object from this `ServiceDataCargo`.
  `void`
  `setProcessTrace(ProcessTrace aProcessTrace)`
  Sets the ProcessTrace object from this `ServiceDataCargo`.
  `void`
  `unmarshalCas(CAS aCas, boolean aReplaceCasTypeSystem)`
  Unmarshalls the CAS data in this `ServiceDataCargo` into an existing `CAS` instance.
  `void`
  `unmarshalInto(AnalysisProcessData aDataContainer, boolean aReplaceCasTypeSystem)`
  Unmarshalls this `SerializableAnalysisProcessData` into an existing `AnalysisProcessData` object.

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

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

- ## Constructor Details

  - ### ServiceDataCargo

    public ServiceDataCargo(AnalysisProcessData aData)
    Creates a new `SerializableAnalysisProcessData` that contains information extracted from the specified `AnalysisProcessData`.
    Parameters:
      `aData` - the AnalysisProcessData to extract from

  - ### ServiceDataCargo

    public ServiceDataCargo(CAS aCAS, ProcessTrace aProcessTrace)
    Creates a new `SerializableAnalysisProcessData` that contains the given `CAS` and `ProcessTrace`.
    Parameters:
      `aCAS` - the CAS whose state will be extracted into this object
      `aProcessTrace` - the process trace object. This may be null, if no process trace is available. (For example, ProcessTrace data may often be returned from a service but not passed to the service.)

- ## Method Details

  - ### unmarshalInto

    public void unmarshalInto(AnalysisProcessData aDataContainer, boolean aReplaceCasTypeSystem) throws CASException
    Unmarshalls this `SerializableAnalysisProcessData` into an existing `AnalysisProcessData` object. The existing CAS data in the `aDataContainer` object will be replaced by the CAS data in this object. The `ProcessTrace` events in this object will be appended to the `ProcessTrace` of the `aDataContainer` object.
    Parameters:
      `aDataContainer` - the AnalysisProcessData to unmarshal into
      `aReplaceCasTypeSystem` - -
    Throws:
      `CASException` - -

  - ### unmarshalCas

    public void unmarshalCas(CAS aCas, boolean aReplaceCasTypeSystem) throws CASException
    Unmarshalls the CAS data in this `ServiceDataCargo` into an existing `CAS` instance. The data in the exsiting CAS will be replaced by the CAS data in this object.
    Parameters:
      `aCas` - the CAS to unmarshal into
      `aReplaceCasTypeSystem` - if true, assumes serialized data contains the type system
    Throws:
      `CASException` - passthru

  - ### getProcessTrace

    public ProcessTrace getProcessTrace()
    Gets the ProcessTrace object from this `ServiceDataCargo`. This may return null, if no process trace is available. (For example, ProcessTrace data may often be returned from a service but not passed to the service.)
    Returns:
      the process trace

  - ### setProcessTrace

    public void setProcessTrace(ProcessTrace aProcessTrace)
    Sets the ProcessTrace object from this `ServiceDataCargo`.
    Parameters:
      `aProcessTrace` - the process trace