package org.marketcetera.module;
import org.marketcetera.util.misc.ClassVersion;
import java.io.Serializable;
import java.beans.ConstructorProperties;
/* $License$ */
/**
* Instances of this class describe the state of a module in a data flow.
*
* @author anshul@marketcetera.com
* @version $Id: DataFlowStep.java 16154 2012-07-14 16:34:05Z colin $
* @since 1.0.0
*/
@ClassVersion("$Id: DataFlowStep.java 16154 2012-07-14 16:34:05Z colin $") //$NON-NLS-1$
public final class DataFlowStep implements Serializable {
/**
* The data request associated with this flow step.
*
* @return the data request.
*/
public StringDataRequest getRequest() {
return mRequest;
}
/**
* The instance URN of the module in this flow step
*
* @return the module URN
*/
public ModuleURN getModuleURN() {
return mModuleURN;
}
/**
* If this module is participating as a data emitter
*
* @return true if this module is emitting data in this data flow.
*/
public boolean isEmitter() {
return mEmitter;
}
/**
* If this module is participating as a data receiver
*
* @return true if this module is receiving data in this data flow.
*/
public boolean isReceiver() {
return mReceiver;
}
/**
* Number of data objects emitted. This value is valid only if
* {@link #isEmitter()} is true.
*
* @return number of data objects emitted.
*/
public long getNumEmitted() {
return mNumEmitted;
}
/**
* Number of data objects received. This value is valid only if
* {@link #isReceiver()} is true.
*
* @return number of data objects received.
*/
public long getNumReceived() {
return mNumReceived;
}
/**
* Returns the number of errors encountered on this data flow step
* when receiving data. This value is valid only if {@link #isReceiver()}
* is true.
*
* Zero, if no errors have been encountered so far.
*
* @return the number of errors encountered when receiving data.
*/
public long getNumReceiveErrors() {
return mNumReceiveErrors;
}
/**
* Returns a non-null value explaining the last error that was
* encountered while receiving data in this flow step.
* This value is valid only if {@link #isReceiver()} is true.
*
* @return a non-null value explaining the last error encountered
* while receiving data. Null, if there have no errors so far.
*/
public String getLastReceiveError() {
return mLastReceiveError;
}
/**
* Returns the number of data emit errors encountered by this module
* when emitting data.
*
* This value is valid only if {@link #isEmitter()} is true.
*
* @return the number of data emit errors encountered when emitting
* data. zero, if no errors have been encountered so far.
*
* @see DataEmitterSupport#dataEmitError(org.marketcetera.util.log.I18NBoundMessage, boolean)
*/
public long getNumEmitErrors() {
return mNumEmitErrors;
}
/**
* Returns the last data emit error encountered by this module.
*
* This value is valid only if {@link #isEmitter()} is true.
*
* @return the last data emit error encountered by this module, null if
* no errors have been encountered so far.
*/
public String getLastEmitError() {
return mLastEmitError;
}
/**
* Creates an instance.
*
* @param inRequest The original data request
* @param inModuleURN the module instance URN
* @param inEmitter if this module is emitting data in this data flow
* @param inReceiver if this module is receiving data in this data flow
* @param inNumEmitted number of data objects emitted
* @param inNumReceived number of data objects received
* @param inNumEmitErrors number of errors encountered when emitting
* data.
* @param inNumReceiveErrors number of errors encountered when
* receiving data
* @param inLastEmitError last error encountered when emitting data.
* @param inLastReceiveError last error encountered when receiving data
*/
@ConstructorProperties({
"request", //$NON-NLS-1$
"moduleURN", //$NON-NLS-1$
"emitter", //$NON-NLS-1$
"receiver", //$NON-NLS-1$
"numEmitted", //$NON-NLS-1$
"numReceived", //$NON-NLS-1$
"numEmitErrors", //$NON-NLS-1$
"numReceiveErrors", //$NON-NLS-1$
"lastEmitError", //$NON-NLS-1$
"lastReceiveError" //$NON-NLS-1$
})
public DataFlowStep(StringDataRequest inRequest,
ModuleURN inModuleURN,
boolean inEmitter,
boolean inReceiver,
long inNumEmitted,
long inNumReceived,
long inNumEmitErrors,
long inNumReceiveErrors,
String inLastEmitError,
String inLastReceiveError) {
mRequest = inRequest;
mModuleURN = inModuleURN;
mEmitter = inEmitter;
mReceiver = inReceiver;
mNumEmitted = inNumEmitted;
mNumReceived = inNumReceived;
mNumEmitErrors = inNumEmitErrors;
mNumReceiveErrors = inNumReceiveErrors;
mLastEmitError = inLastEmitError;
mLastReceiveError = inLastReceiveError;
}
private final StringDataRequest mRequest;
private final ModuleURN mModuleURN;
private final boolean mEmitter;
private final boolean mReceiver;
private final long mNumEmitted;
private final long mNumReceived;
private final long mNumEmitErrors;
private final long mNumReceiveErrors;
private final String mLastEmitError;
private final String mLastReceiveError;
private static final long serialVersionUID = 2259786776527863195L;
}