class OCFRuntimeException extends RuntimeException {

    @Override
    public int hashCode()
    {
        int result = Objects.hash(reportedHTTPCode, reportingClassName, reportingActionDescription, reportedErrorMessage, reportedErrorMessageId,
                                  reportedSystemAction, reportedUserAction, reportedCaughtException, relatedProperties);
        result = 31 * result + Arrays.hashCode(reportedErrorMessageParameters);
        return result;
    }

    public  OCFRuntimeException(ExceptionMessageDefinition messageDefinition,
                               String                     className,
                               String                     actionDescription);
    public  OCFRuntimeException(ExceptionMessageDefinition messageDefinition,
                               String                     className,
                               String                     actionDescription,
                               Map<String, Object>        relatedProperties);
    public  OCFRuntimeException(ExceptionMessageDefinition messageDefinition,
                               String                     className,
                               String                     actionDescription,
                               Throwable                  caughtError);
    public  OCFRuntimeException(ExceptionMessageDefinition messageDefinition,
                               String                     className,
                               String                     actionDescription,
                               Throwable                  caughtError,
                               Map<String, Object>        relatedProperties);
    public  OCFRuntimeException(int                 httpCode,
                               String              className,
                               String              actionDescription,
                               String              errorMessage,
                               String              errorMessageId,
                               String[]            errorMessageParameters,
                               String              systemAction,
                               String              userAction,
                               String              caughtErrorClassName,
                               Map<String, Object> relatedProperties);
    public  OCFRuntimeException(String              errorMessage,
                               OCFRuntimeException template);
    public  OCFRuntimeException(OCFRuntimeException template);
    @Deprecated public  OCFRuntimeException(int  httpCode, String className, String  actionDescription, String errorMessage, String systemAction, String userAction);
    @Deprecated public  OCFRuntimeException(int  httpCode, String className, String  actionDescription, String errorMessage, String systemAction, String userAction, Map<String, Object> relatedProperties);
    @Deprecated public  OCFRuntimeException(int  httpCode, String className, String  actionDescription, String errorMessage, String systemAction, String userAction, Throwable caughtError);
    @Deprecated public  OCFRuntimeException(int  httpCode, String className, String  actionDescription, String errorMessage, String systemAction, String userAction, Throwable caughtError, Map<String, Object> relatedProperties);

}