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

com.gs.fw.finder.Attribute Maven / Gradle / Ivy

There is a newer version: 18.1.0
Show newest version

/*
 Copyright 2016 Goldman Sachs.
 Licensed 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 com.gs.fw.finder;

import java.io.Serializable;

/**
 * Domain object attributes for use in generating query criteria. Attributes are factories for {@link Operation}s,
 * {@link OrderBy}s, and synthetic attribute-based constructs such as {@link AggregateAttribute}s.
 */
public interface Attribute extends Serializable
{
    /**
     * Produces query criteria specifying that this attribute is null.
     *
     * @return an operation specifying that this attribute is null.
     */
    public Operation isNull();

    /**
     * Produces query criteria specifying that this attribute is not null.
     *
     * @return an operation specifying that this attribute is not null.
     */
    public Operation isNotNull();

    /**
     * Produces order by criteria representing an ascending ordering on this attribute.
     *
     * @return an order by representing an ascending ordering on this attribute.
     */
    public OrderBy ascendingOrderBy();

    /**
     * Produces order by criteria representing a descending ordering on this attribute.
     *
     * @return an order by representing a descendingg ordering on this attribute.
     */
    public OrderBy descendingOrderBy();

    /**
     * Produces an aggregate attribute representing a count operation on this attribute.
     *
     * @return an aggregate attribute representing a count operation this attribute.
     */
    public AggregateAttribute count();

    /**
     * Produces an aggregate attribute representing a min operation on this attribute.
     *
     * @return an aggregate attribute representing a min operation on this attribute.
     */
    public AggregateAttribute min();

    /**
     * Produces an aggregate attribute representing a max operation on this attribute.
     *
     * @return an aggregate attribute representing a max operation on this attribute.
     */
    public AggregateAttribute max();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy