io.statusmachina.core.api.TransitionException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of status-machina-core Show documentation
Show all versions of status-machina-core Show documentation
Core functionality for Status Machina, a small, simple and pragmatic state machine for resilient microservices orchestration.
The newest version!
/*
* Copyright 2019 <---> Present Status Machina Contributors (https://github.com/entzik/status-machina/graphs/contributors)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* This software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
*/
package io.statusmachina.core.api;
/**
* exception thrown when a state machine exeption fails
*/
public class TransitionException extends RuntimeException {
private final Machine machineInstance;
private final Transition, ?> transition;
private ErrorType errorType;
/**
* transition exception that wraps an underlying exception
*/
public TransitionException(ErrorType errorType, Throwable cause) {
super(cause);
this.errorType = errorType;
this.machineInstance = null;
this.transition = null;
}
/**
* @param machineInstance the affected state machine
* @param transition the transition that fails
* @param the state type
* @param the event type
*/
public TransitionException(Machine machineInstance, Transition transition, ErrorType errorType) {
this.machineInstance = machineInstance;
this.transition = transition;
this.errorType = errorType;
}
/**
* @param machineInstance the affected state machine
* @param transition the transition that fails
* @param cause the downstream exception that caused the transition to fail
* @param the state type
* @param the event type
*/
public TransitionException(Machine machineInstance, Transition transition, ErrorType errorType, Throwable cause) {
super(cause);
this.machineInstance = machineInstance;
this.transition = transition;
this.errorType = errorType;
}
/**
* @return the affected machine
*/
public Machine getMachineInstance() {
return machineInstance;
}
/**
* @return transition that failed
*/
public Transition, ?> getTransition() {
return transition;
}
public ErrorType getErrorType() {
return errorType;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy