JavaScript Extension Development API for Oracle Visual Builder Cloud Service - Classic Applications

Source: bop/js/api/operation/RelationOperator.js

define([], function () {

    'use strict';

    /**
     * Representing relationship operator used for creation of {@link bop/js/api/operation/CompositeCondition CompositeCondition}s.
     *
     * <p>
     * Author of the {@link bop/js/spi/BOP BOP} is expected to write his own {@link bop/js/spi/operation/ConditionVisitor ConditionVisitor} which interpret incoming {@link operation/js/api/Condition Condition}s and transform them
     * into proper URL query or generally process them any way (s)he need. Usually {@link bop/js/spi/operation/ConditionVisitor#visitCompositeCondition ConditionVisitor.visitCompositeCondition(..)} needs to behave differently based
     * on the {@link bop/js/api/operation/RelationOperator RelationOperator} assigned to particular {@link bop/js/api/operation/CompositeCondition CompositeCondition}.
     * <p>
     *
     * @AbcsExtension stable
     * @version 17.1.1
     * @exports bop/js/api/operation/RelationOperator
     *
     * @constructor
     * @private
     *
     * @see {@link module:operation/js/api/Conditions.OR Conditions.OR(..)} to create {@link bop/js/api/operation/CompositeCondition CompositeCondition}s with {@link bop/js/api/operation/RelationOperator.OR RelationOperator.OR} set.
     * @see {@link module:operation/js/api/Conditions.AND Conditions.AND(..)} to create {@link bop/js/api/operation/CompositeCondition CompositeCondition}s with {@link bop/js/api/operation/RelationOperator.OR RelationOperator.AND} set.
     * @see {@link bop/js/spi/operation/ConditionVisitor#visitCompositeCondition ConditionVisitor.visitCompositeCondition(..)} to check how {@link bop/js/api/operation/RelationOperator RelationOperator} is processed.
     */
    var RelationOperator = function() {
        AbcsLib.throwStaticClassError();
    };

    RelationOperator._UNKNOWN_VALUE = 'RelationOperator.forName() parameter is unknown and can\'t be recognized.';

    /**
     * Represents relationship operator AND of {@link bop/js/api/operation/CompositeCondition CompositeCondition}.
     *
     * @AbcsExtension stable
     * @version 17.1.1
     *
     * @type {string}
     */
    RelationOperator.AND = 'AND';

    /**
     * Represents relationship operator OR of {@link bop/js/api/operation/CompositeCondition CompositeCondition}.
     *
     * @AbcsExtension stable
     * @version 17.1.1
     *
     * @type {string}
     */
    RelationOperator.OR = 'OR';

    /**
     * Get's a {@link bop/js/api/operation/RelationOperator RelationOperator} which correspond to the given value.
     *
     * <p>
     * The primary purpose of this method is to allow recreation of the original object based on
     * the information stored within the JSON description.
     * </p>
     *
     * @param {String} value
     * @returns {bop/js/api/operation/RelationOperator}
     */
    RelationOperator.forName = function(value) {
        switch (value) {
            case RelationOperator.AND:
                return RelationOperator.AND;
            case RelationOperator.OR:
                return RelationOperator.OR;
            default:
                throw RelationOperator._UNKNOWN_VALUE;
        }
    };

    return RelationOperator;
});