/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.component.api;
/**
* Class holding constants for loop components.
*
* @author Doreen Seider
*/
public final class LoopComponentConstants {
/** Key for component's reset behavior. */
public static final String COMPONENT_IS_RESET_SINK = "rce.component.isDriverComponent";
/** Constant. */
public static final String ENDPOINT_NAME_LOOP_DONE = "Done";
/** Constant. */
public static final String CONFIG_KEY_IS_NESTED_LOOP = "isNestedLoop_5e0ed1cd";
/** Constant. */
public static final String CONFIG_KEY_LOOP_FAULT_TOLERANCE_COMP_FAILURE = "loopFaultTolerance_5e0ed1cd";
/** Constant. */
public static final String CONFIG_KEY_LOOP_FAULT_TOLERANCE_NAV = "faultTolerance-NAV_5e0ed1cd";
/** Constant. */
public static final String CONFIG_KEY_MAX_RERUN_BEFORE_FAIL_NAV = "maxRerunBeforeFail-NAV_5e0ed1cd";
/** Constant. */
public static final String CONFIG_KEY_MAX_RERUN_BEFORE_DISCARD_NAV = "maxRerunBeforeDiscard-NAV_5e0ed1cd";
/** Constant. */
public static final String CONFIG_KEY_FAIL_LOOP_ONLY_NAV = "failLoopOnly-NAV_5e0ed1cd";
/** Constant. */
public static final String CONFIG_KEY_FINALLY_FAIL_IF_DISCARDED_NAV = "finallyFailIfDiscarded-NAV_5e0ed1cd";
/** Constant. */
public static final String ENDPOINT_ID_TO_FORWARD = "toForward";
/** Constant. */
public static final String ENDPOINT_ID_START_TO_FORWARD = "startToForward";
/** Constant. */
public static final String ENDPOINT_ID_FINAL_TO_FORWARD = "finalToForward";
/** Constant. */
public static final String ENDPOINT_STARTVALUE_SUFFIX = "_start";
/** Constant. */
public static final String ENDPOINT_STARTVALUE_GROUP = "startValues";
/** Constant. */
public static final String META_KEY_LOOP_ENDPOINT_TYPE = "loopEndpointType_5e0ed1cd";
/** Private Constructor. */
private LoopComponentConstants() {
// NOP
}
/**
* How a loop behaves in case of failure (certain component sent not-a-value or failed).
*
* @author Doreen Seider
*/
public enum LoopBehaviorInCaseOfFailure {
/**
* Let the workflow fail.
*/
Fail,
/**
* Discard the evaluation run and continue with next one.
*/
Discard,
/**
* Rerun the evaluation run and fails if maximum of reruns exceeded. Only applicable for "not-a-value" failure. // TODO add separate
* behavior for component failures and "not-a-value" failures into two enums
*/
RerunAndFail,
/**
* Rerun the evaluation run and discard the evaluation run and continue with next one if maximum of reruns exceeded. Only applicable
* for "not-a-value" failure. // TODO add separate behavior for component failures and "not-a-value" failures into two enums
*/
RerunAndDiscard;
private static LoopBehaviorInCaseOfFailure defaultBehavior = LoopBehaviorInCaseOfFailure.Fail;
/**
* @param behavior {@link LoopBehaviorInCaseOfFailure} as string
* @return appropriate {@link LoopBehaviorInCaseOfFailure}; if given string is <code>null</code> or cannot be parsed to
* {@link LoopBehaviorInCaseOfFailure} {@link LoopBehaviorInCaseOfFailure#Fail} is returned as default
*/
public static LoopBehaviorInCaseOfFailure fromString(String behavior) {
if (behavior == null) {
return defaultBehavior;
} else {
try {
return LoopBehaviorInCaseOfFailure.valueOf(behavior);
} catch (IllegalArgumentException e) {
return defaultBehavior;
}
}
}
}
}