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

org.intermine.objectstore.query.QueryEvaluable Maven / Gradle / Ivy

package org.intermine.objectstore.query;

/*
 * Copyright (C) 2002-2022 FlyMine
 *
 * This code may be freely distributed and modified under the
 * terms of the GNU Lesser General Public Licence.  This should
 * be distributed with the code.  See the LICENSE file for more
 * information or http://www.gnu.org/copyleft/lesser.html.
 *
 */

/**
 * An element that can be evaluated for comparison (one that represents an atomic type)
 *
 * @author Mark Woodbridge
 * @author Richard Smith
 * @author Matthew Wakeling
 */
public interface QueryEvaluable extends QueryNode
{
    /**
     * Allows a caller to suggest to this object that it holds a value of a certain type.
     * This method should only be called on objects which report their type to be UnknownTypeValue.
     * Otherwise, this method will throw and exception.
     *
     * @param cls the Class of the type to be imposed on this object
     */
    void youAreType(Class cls);

    /**
     * Returns an integer representing the approximate type of this QueryEvaluable, in the case
     * where an accurate type cannot be ascertained.
     *
     * @return an int, as described in UnknownTypeValue
     */
    int getApproximateType();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy