ConversionDecision.java

/*******************************************************************************
 * Copyright (c) 2026 Carsten Hammer.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     Carsten Hammer
 *******************************************************************************/
package org.sandbox.functional.core.tree;

/**
 * Represents the conversion decision for a loop node in the loop tree.
 * 
 * <p>This enum tracks whether a loop can be converted to functional style
 * and if it should be skipped due to nested loop conversions.</p>
 * 
 * @since 1.0.0
 */
public enum ConversionDecision {
    /**
     * The loop can be converted to functional stream operations.
     */
    CONVERTIBLE,
    
    /**
     * The loop cannot be converted due to precondition failures.
     */
    NOT_CONVERTIBLE,
    
    /**
     * The loop is not converted because an inner nested loop was converted.
     * Converting both would lead to incorrect semantics.
     */
    SKIPPED_INNER_CONVERTED,
    
    /**
     * The conversion decision has not yet been determined.
     * This is the initial state before analysis.
     */
    PENDING
}