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:
  • 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