Something went wrong on our end
Select Git revision
abstractoperator.mjs
-
Volker Schukai authoredVolker Schukai authored
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");
}
}