All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.sidhant92.boolparser.operator.EqualsOperator Maven / Gradle / Ivy

The newest version!
package com.github.sidhant92.boolparser.operator;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import com.github.sidhant92.boolparser.constant.ContainerDataType;
import com.github.sidhant92.boolparser.constant.DataType;
import com.github.sidhant92.boolparser.constant.Operator;

/**
 * @author sidhant.aggarwal
 * @since 05/03/2023
 */
public class EqualsOperator extends AbstractOperator {
    @Override
    public > boolean evaluate(final ContainerDataType containerDataType, final DataType dataType,
            final Object leftOperand, final Object... rightOperands) {
        final Optional leftValueOptional = containerDataType.getValue(dataType, leftOperand);
        final Optional rightValueOptional = containerDataType.getValue(dataType, rightOperands[0]);
        return leftValueOptional.flatMap(leftValue -> rightValueOptional.map(leftValue::compareTo).map(a -> a == 0)).orElse(false);
    }

    @Override
    public Operator getOperator() {
        return Operator.EQUALS;
    }

    @Override
    public String getSymbol() {
        return "=";
    }

    @Override
    public List getAllowedContainerTypes() {
        return Collections.singletonList(ContainerDataType.PRIMITIVE);
    }

    @Override
    public List getAllowedDataTypes() {
        return Arrays.asList(DataType.values());
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy