com.evolveum.midpoint.common.result
Class OperationResult

java.lang.Object
  extended by com.evolveum.midpoint.common.result.OperationResult
All Implemented Interfaces:
java.io.Serializable

public class OperationResult
extends java.lang.Object
implements java.io.Serializable

Nested Operation Result. This class provides informations for better error handling in complex operations. It contains a status (success, failure, warning, ...) and an error message. It also contains a set of sub-results - results on inner operations. This object can be used by GUI to display smart (and interactive) error information. It can also be used by the client code to detect deeper problems in the invocations, retry or otherwise compensate for the errors or decide how severe the error was and it is possible to proceed.

Author:
lazyman, Radovan Semancik
See Also:
Serialized Form

Field Summary
static java.lang.String CONTEXT_IMPLEMENTATION_CLASS
           
static java.lang.String CONTEXT_OID
           
static java.lang.String CONTEXT_PROGRESS
           
static java.lang.String PARAM_OID
           
static java.lang.String PARAM_TASK
           
 
Constructor Summary
OperationResult(java.lang.String operation)
           
OperationResult(java.lang.String operation, long token, java.lang.String messageCode, java.lang.String message)
           
OperationResult(java.lang.String operation, java.util.Map<java.lang.String,java.lang.Object> params, OperationResultStatus status, long token, java.lang.String messageCode, java.lang.String message)
           
OperationResult(java.lang.String operation, java.util.Map<java.lang.String,java.lang.Object> params, OperationResultStatus status, long token, java.lang.String messageCode, java.lang.String message, java.util.List<OperationResult> subresults)
           
OperationResult(java.lang.String operation, java.util.Map<java.lang.String,java.lang.Object> params, OperationResultStatus status, long token, java.lang.String messageCode, java.lang.String message, java.lang.String localizationMessage, java.util.List<java.lang.Object> localizationArguments, java.lang.Throwable cause, java.util.List<OperationResult> subresults)
           
OperationResult(java.lang.String operation, java.util.Map<java.lang.String,java.lang.Object> params, OperationResultStatus status, long token, java.lang.String messageCode, java.lang.String message, java.lang.String localizationMessage, java.lang.Throwable cause, java.util.List<OperationResult> subresults)
           
OperationResult(java.lang.String operation, OperationResultStatus status, long token, java.lang.String messageCode, java.lang.String message)
           
OperationResult(java.lang.String operation, OperationResultStatus status, long token, java.lang.String messageCode, java.lang.String message, java.lang.Throwable cause)
           
OperationResult(java.lang.String operation, OperationResultStatus status, java.lang.String message)
           
OperationResult(java.lang.String operation, OperationResultStatus status, java.lang.String messageCode, java.lang.String message)
           
OperationResult(java.lang.String operation, java.lang.String messageCode, java.lang.String message)
           
 
Method Summary
 void addContext(java.lang.String contextName, java.lang.Object value)
           
 void addParam(java.lang.String paramName, java.lang.Object paramValue)
           
 void addSubresult(OperationResult subresult)
           
 void computeStatus()
          Computes operation result status based on subtask status.
 void computeStatus(java.lang.String errorMessage)
          Computes operation result status based on subtask status and sets an error message if the status is FATAL_ERROR.
static OperationResult createOperationResult(OperationResultType result)
           
 OperationResultType createOperationResultType()
           
 OperationResult createSubresult(java.lang.String operation)
           
 java.lang.String dump()
           
 java.lang.Throwable getCause()
           
 java.util.Map<java.lang.String,java.lang.Object> getContext()
           
 java.util.List<java.lang.Object> getLocalizationArguments()
           
 java.lang.String getLocalizationMessage()
           
 java.lang.String getMessage()
           
 java.lang.String getMessageCode()
          Contains mesage code based on module error catalog.
 java.lang.String getOperation()
          Contains operation name.
 java.util.Map<java.lang.String,java.lang.Object> getParams()
          Method returns Map with operation parameters.
 java.lang.Object getReturnValue()
           
 OperationResultStatus getStatus()
          Contains operation status as defined in OperationResultStatus
 java.util.List<OperationResult> getSubresults()
          Method returns list of operation subresults @{link OperationResult.
 long getToken()
           
 boolean hasUnknownStatus()
          Returns true if result status is UNKNOWN or any of the subresult status is unknown (recursive).
 boolean isAcceptable()
          Returns true if the result is acceptable for further processing.
 boolean isSuccess()
          Returns true if the result is success.
 boolean isUnknown()
           
 boolean isWarning()
           
 void record(CommonException exception)
          Records result from a common exception type.
 void recordFatalError(java.lang.String message)
           
 void recordFatalError(java.lang.String message, java.lang.Throwable cause)
           
 void recordFatalError(java.lang.Throwable cause)
           
 void recordPartialError(java.lang.String message)
           
 void recordPartialError(java.lang.String message, java.lang.Throwable cause)
           
 void recordPartialError(java.lang.Throwable cause)
           
 void recordStatus(OperationResultStatus status, java.lang.String message)
           
 void recordStatus(OperationResultStatus status, java.lang.String message, java.lang.Throwable cause)
           
 void recordStatus(OperationResultStatus status, java.lang.Throwable cause)
           
 void recordSuccess()
           
 void recordWarning(java.lang.String message)
           
 void recordWarning(java.lang.String message, java.lang.Throwable cause)
           
 void recordWarning(java.lang.Throwable cause)
           
 void setReturnValue(java.lang.Object returnValue)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CONTEXT_IMPLEMENTATION_CLASS

public static final java.lang.String CONTEXT_IMPLEMENTATION_CLASS
See Also:
Constant Field Values

CONTEXT_PROGRESS

public static final java.lang.String CONTEXT_PROGRESS
See Also:
Constant Field Values

CONTEXT_OID

public static final java.lang.String CONTEXT_OID
See Also:
Constant Field Values

PARAM_OID

public static final java.lang.String PARAM_OID
See Also:
Constant Field Values

PARAM_TASK

public static final java.lang.String PARAM_TASK
See Also:
Constant Field Values
Constructor Detail

OperationResult

public OperationResult(java.lang.String operation)

OperationResult

public OperationResult(java.lang.String operation,
                       java.lang.String messageCode,
                       java.lang.String message)

OperationResult

public OperationResult(java.lang.String operation,
                       long token,
                       java.lang.String messageCode,
                       java.lang.String message)

OperationResult

public OperationResult(java.lang.String operation,
                       OperationResultStatus status,
                       java.lang.String message)

OperationResult

public OperationResult(java.lang.String operation,
                       OperationResultStatus status,
                       java.lang.String messageCode,
                       java.lang.String message)

OperationResult

public OperationResult(java.lang.String operation,
                       OperationResultStatus status,
                       long token,
                       java.lang.String messageCode,
                       java.lang.String message)

OperationResult

public OperationResult(java.lang.String operation,
                       OperationResultStatus status,
                       long token,
                       java.lang.String messageCode,
                       java.lang.String message,
                       java.lang.Throwable cause)

OperationResult

public OperationResult(java.lang.String operation,
                       java.util.Map<java.lang.String,java.lang.Object> params,
                       OperationResultStatus status,
                       long token,
                       java.lang.String messageCode,
                       java.lang.String message)

OperationResult

public OperationResult(java.lang.String operation,
                       java.util.Map<java.lang.String,java.lang.Object> params,
                       OperationResultStatus status,
                       long token,
                       java.lang.String messageCode,
                       java.lang.String message,
                       java.util.List<OperationResult> subresults)

OperationResult

public OperationResult(java.lang.String operation,
                       java.util.Map<java.lang.String,java.lang.Object> params,
                       OperationResultStatus status,
                       long token,
                       java.lang.String messageCode,
                       java.lang.String message,
                       java.lang.String localizationMessage,
                       java.lang.Throwable cause,
                       java.util.List<OperationResult> subresults)

OperationResult

public OperationResult(java.lang.String operation,
                       java.util.Map<java.lang.String,java.lang.Object> params,
                       OperationResultStatus status,
                       long token,
                       java.lang.String messageCode,
                       java.lang.String message,
                       java.lang.String localizationMessage,
                       java.util.List<java.lang.Object> localizationArguments,
                       java.lang.Throwable cause,
                       java.util.List<OperationResult> subresults)
Method Detail

createSubresult

public OperationResult createSubresult(java.lang.String operation)

getOperation

public java.lang.String getOperation()
Contains operation name. Operation name must be defined as String constant in module interface with description and possible parameters. It can be used for further processing. It will be used as key for translation in admin-gui.

Returns:
always return non null, non empty string

getSubresults

public java.util.List<OperationResult> getSubresults()
Method returns list of operation subresults @{link OperationResult.

Returns:
never returns null

addSubresult

public void addSubresult(OperationResult subresult)

getStatus

public OperationResultStatus getStatus()
Contains operation status as defined in OperationResultStatus

Returns:
never returns null

isSuccess

public boolean isSuccess()
Returns true if the result is success. This returns true if the result is absolute success. Presence of partial failures or warnings fail this test.

Returns:
true if the result is success.

isWarning

public boolean isWarning()

isAcceptable

public boolean isAcceptable()
Returns true if the result is acceptable for further processing. In other words: if there were no fatal errors. Warnings and partial errors are acceptable. Yet, this test also fails if the operation state is not known.

Returns:
true if the result is acceptable for further processing.

isUnknown

public boolean isUnknown()

computeStatus

public void computeStatus(java.lang.String errorMessage)
Computes operation result status based on subtask status and sets an error message if the status is FATAL_ERROR.

Parameters:
errorMessage - error message

computeStatus

public void computeStatus()
Computes operation result status based on subtask status.


getParams

public java.util.Map<java.lang.String,java.lang.Object> getParams()
Method returns Map with operation parameters. Parameters keys are described in module interface for every operation.

Returns:
never returns null

addParam

public void addParam(java.lang.String paramName,
                     java.lang.Object paramValue)

getContext

public java.util.Map<java.lang.String,java.lang.Object> getContext()

addContext

public void addContext(java.lang.String contextName,
                       java.lang.Object value)

getReturnValue

public java.lang.Object getReturnValue()

setReturnValue

public void setReturnValue(java.lang.Object returnValue)

getToken

public long getToken()
Returns:
Contains random long number, for better searching in logs.

getMessageCode

public java.lang.String getMessageCode()
Contains mesage code based on module error catalog.

Returns:
Can return null.

getMessage

public java.lang.String getMessage()
Returns:
Method returns operation result message. Message is required. It will be key for translation in admin-gui.

getLocalizationMessage

public java.lang.String getLocalizationMessage()
Returns:
Method returns message key for translation, can be null.

getLocalizationArguments

public java.util.List<java.lang.Object> getLocalizationArguments()
Returns:
Method returns arguments if needed for localization, can be null.

getCause

public java.lang.Throwable getCause()
Returns:
Method returns operation result exception. Not required, can be null.

recordSuccess

public void recordSuccess()

recordFatalError

public void recordFatalError(java.lang.Throwable cause)

recordPartialError

public void recordPartialError(java.lang.Throwable cause)

recordWarning

public void recordWarning(java.lang.Throwable cause)

recordStatus

public void recordStatus(OperationResultStatus status,
                         java.lang.Throwable cause)

recordFatalError

public void recordFatalError(java.lang.String message,
                             java.lang.Throwable cause)

recordPartialError

public void recordPartialError(java.lang.String message,
                               java.lang.Throwable cause)

recordWarning

public void recordWarning(java.lang.String message,
                          java.lang.Throwable cause)

recordStatus

public void recordStatus(OperationResultStatus status,
                         java.lang.String message,
                         java.lang.Throwable cause)

recordFatalError

public void recordFatalError(java.lang.String message)

recordPartialError

public void recordPartialError(java.lang.String message)

recordWarning

public void recordWarning(java.lang.String message)

record

public void record(CommonException exception)
Records result from a common exception type. This automatically determines status and also sets appropriate message.

Parameters:
exception - common exception

recordStatus

public void recordStatus(OperationResultStatus status,
                         java.lang.String message)

hasUnknownStatus

public boolean hasUnknownStatus()
Returns true if result status is UNKNOWN or any of the subresult status is unknown (recursive). May come handy in tests to check if all the operations fill out the status as they should.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

dump

public java.lang.String dump()

createOperationResult

public static OperationResult createOperationResult(OperationResultType result)

createOperationResultType

public OperationResultType createOperationResultType()


Copyright © 2011 evolveum. All Rights Reserved.