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

org.apache.cxf.jaxrs.ext.search.SearchCondition Maven / Gradle / Ivy

There is a newer version: 3.0.0-milestone2
Show newest version
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.cxf.jaxrs.ext.search;

import java.util.Collection;
import java.util.List;

//CHECKSTYLE:OFF
/**
 * Can be used to build plain or complex/composite search conditions.
 * 

* Google Collections Predicate * might've been used instead, but it is a too generic and its apply method is not quite needed here *

* * @param Type of the object which will be checked by SearchCondition instance * */ //CHECKSTYLE:ON public interface SearchCondition { /** * Checks if the given pojo instance meets this search condition * * @param pojo the object which will be checked * @return true if the pojo meets this search condition, false - otherwise */ boolean isMet(T pojo); /** * Returns a list of pojos matching the condition * @param pojos list of pojos * @return list of the matching pojos or null if none have been found */ List findAll(Collection pojos); /** * Some SearchConditions may use instance of T to capture the actual search criteria * thus making it simpler to implement isMet(T). In some cases, the code which is given * SearchCondition may find it more efficient to directly deal with the captured state * for a more efficient lookup of matching data/records as opposed to calling * SearchCondition.isMet for every instance of T it knows about. * * * @return T the captured search criteria, can be null */ T getCondition(); /** * Primitive statement such a > b, i < 5, etc * this condition may represent. Complex conditions will return null. * * @return primitive search statement, can be null */ PrimitiveStatement getStatement(); /** * List of conditions this SearchCondition may represent. * Composite SearchConditions will return a list of conditions they are * composed from, primitive ones will return null * @return list of conditions, can be null */ List> getSearchConditions(); /** * Returns the type of the condition this SearchCondition represents * @return condition type */ ConditionType getConditionType(); /** * Provides a visitor which will convert this SearchCondition into * a custom expression, for example, into the SQL statement, etc * @param visitor */ void accept(SearchConditionVisitor visitor); /** * * This method is now deprecated and will be removed soon. * * Utility method for converting this condition into an SQL expression * @param table table name * @param columns column names, a wildcard as in 'SELECT * from table' will be used * if names are not provided * @return SQL expression */ @Deprecated String toSQL(String table, String... columns); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy