Skip to content
Snippets Groups Projects
Select Git revision
  • ef8ef78c5168be8cbd886118caf298c828338fb4
  • master default protected
  • 1.31
  • 4.34.1
  • 4.34.0
  • 4.33.1
  • 4.33.0
  • 4.32.2
  • 4.32.1
  • 4.32.0
  • 4.31.0
  • 4.30.1
  • 4.30.0
  • 4.29.1
  • 4.29.0
  • 4.28.0
  • 4.27.0
  • 4.26.0
  • 4.25.5
  • 4.25.4
  • 4.25.3
  • 4.25.2
  • 4.25.1
23 results

abstractoperator.mjs

Blame
  • abstractoperator.mjs 1.64 KiB
    /**
     * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
     * Node module: @schukai/monster
     * This file is licensed under the AGPLv3 License.
     * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
     */
    
    import {AbstractConstraint} from "./abstract.mjs";
    import {instanceSymbol} from '../constants.mjs';
    export {AbstractOperator}
    
    /**
     * Constraints are used to define conditions that must be met by the value of a variable.
     *
     * The uniform API of the constraints allows chains to be formed.
     *
     * Operators allow you to link constraints together. for example, you can check whether a value is 
     * an object or an array. each operator has two operands that are linked together.
     *
     * @license AGPLv3
     * @since 1.3.0
     * @copyright schukai GmbH
     * @memberOf Monster.Constraints
     * @summary The abstract operator constraint
     */
    class AbstractOperator extends AbstractConstraint {
    
        /**
         *
         * @param {AbstractConstraint} operantA
         * @param {AbstractConstraint} operantB
         * @throws {TypeError} "parameters must be from type AbstractConstraint"
         */
        constructor(operantA, operantB) {
            super();
    
            if (!(operantA instanceof AbstractConstraint) || !(operantB instanceof AbstractConstraint)) {
                throw new TypeError("parameters must be from type AbstractConstraint")
            }
    
            this.operantA = operantA;
            this.operantB = operantB;
    
        }
    
        /**
         * This method is called by the `instanceof` operator.
         * @returns {symbol}
         * @since 2.1.0
         */
        static get [instanceSymbol]() {
            return Symbol.for("@schukai/monster/constraints/abstract-operator");
        }
    
    
    
    }