'use strict';
/**
* @author schukai GmbH
*/
import {Monster, AbstractConstraint} from "./abstract.js";
/**
* 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.
*
* @since 1.3.0
* @copyright schukai GmbH
* @memberOf Monster/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;
}
}
Monster.assignToNamespace('Monster.Constraint', AbstractOperator);
export {Monster, AbstractOperator}