// Copyright 2010 Simon Edwards <simon@simonzone.com>

//                 Generated by twine2

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU Library General Public License as
// published by the Free Software Foundation; either version 2, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details

// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

namespace Nepomuk
{
namespace Query
{
class ComparisonTerm : Nepomuk::Query::SimpleTerm
{
%TypeHeaderCode
#include <nepomuk/comparisonterm.h>
%End

public:
    enum Comparator
    {
        Contains,
        Regexp,
        Equal,
        Greater,
        Smaller,
        GreaterOrEqual,
        SmallerOrEqual
    };
                            ComparisonTerm ();
                            ComparisonTerm (const Nepomuk::Query::ComparisonTerm& term);
                            ComparisonTerm (const Nepomuk::Types::Property& property, const Nepomuk::Query::Term& term, Nepomuk::Query::ComparisonTerm::Comparator comparator = Nepomuk::Query::ComparisonTerm::Contains);
    ~ComparisonTerm ();
    Nepomuk::Query::ComparisonTerm::Comparator  comparator () const;
    Nepomuk::Types::Property  property () const;
    void                    setComparator (Nepomuk::Query::ComparisonTerm::Comparator);
    void                    setProperty (const Nepomuk::Types::Property&);
    enum AggregateFunction
    {
        NoAggregateFunction,
        Count,
        DistinctCount,
        Max,
        Min,
        Sum,
        DistinctSum,
        Average,
        DistinctAverage
    };
    void                    setVariableName (const QString& name);
    QString                 variableName () const;
    void                    setAggregateFunction (Nepomuk::Query::ComparisonTerm::AggregateFunction function);
    Nepomuk::Query::ComparisonTerm::AggregateFunction  aggregateFunction () const;
    void                    setSortWeight (int weight, Qt::SortOrder sortOrder = Qt::AscendingOrder);
    int                     sortWeight () const;
    Qt::SortOrder           sortOrder () const;
    bool                    isInverted () const;
    void                    setInverted (bool invert);
    Nepomuk::Query::ComparisonTerm  inverted () const;
};
};
};
