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

com.espertech.esper.client.hook.VirtualDataWindowLookupOp Maven / Gradle / Ivy

There is a newer version: 7.1.0
Show newest version
/*
 ***************************************************************************************
 *  Copyright (C) 2006 EsperTech, Inc. All rights reserved.                            *
 *  http://www.espertech.com/esper                                                     *
 *  http://www.espertech.com                                                           *
 *  ---------------------------------------------------------------------------------- *
 *  The software in this package is published under the terms of the GPL license       *
 *  a copy of which has been included with this distribution in the license.txt file.  *
 ***************************************************************************************
 */
package com.espertech.esper.client.hook;

/**
 * Enumeration for indicating the type of operator for a lookup against a virtual data window, see {@link VirtualDataWindowLookupContext}.
 */
public enum VirtualDataWindowLookupOp {
    /**
     * Equals (=).
     */
    EQUALS("="),

    /**
     * Less (<).
     */
    LESS("<"),

    /**
     * Less or equal (<=).
     */
    LESS_OR_EQUAL("<="),

    /**
     * Greater or equal (>=).
     */
    GREATER_OR_EQUAL(">="),

    /**
     * Greater (>).
     */
    GREATER(">"),

    /**
     * Range contains neither endpoint, i.e. (a,b)
     */
    RANGE_OPEN("(,)"),

    /**
     * Range contains low and high endpoint, i.e. [a,b]
     */
    RANGE_CLOSED("[,]"),

    /**
     * Range includes low endpoint but not high endpoint, i.e. [a,b)
     */
    RANGE_HALF_OPEN("[,)"),

    /**
     * Range includes high endpoint but not low endpoint, i.e. (a,b]
     */
    RANGE_HALF_CLOSED("(,]"),

    /**
     * Inverted-Range contains neither endpoint, i.e. (a,b)
     */
    NOT_RANGE_OPEN("-(,)"),

    /**
     * Inverted-Range contains low and high endpoint, i.e. [a,b]
     */
    NOT_RANGE_CLOSED("-[,]"),

    /**
     * Inverted-Range includes low endpoint but not high endpoint, i.e. [a,b)
     */
    NOT_RANGE_HALF_OPEN("-[,)"),

    /**
     * Inverted-Range includes high endpoint but not low endpoint, i.e. (a,b]
     */
    NOT_RANGE_HALF_CLOSED("-(,]");

    private final String op;

    private VirtualDataWindowLookupOp(String op) {
        this.op = op;
    }

    /**
     * Returns the string-value of the operator.
     *
     * @return operator string value
     */
    public String getOp() {
        return op;
    }

    /**
     * Map the operator from a string-value.
     *
     * @param stringOp to map from
     * @return operator
     * @throws IllegalArgumentException if the string operator cannot be understood
     */
    public static VirtualDataWindowLookupOp fromOpString(String stringOp) {
        for (VirtualDataWindowLookupOp op : VirtualDataWindowLookupOp.values()) {
            if (op.getOp().equals(stringOp)) {
                return op;
            }
        }
        throw new IllegalArgumentException("Failed to recognize operator '" + stringOp + "'");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy