• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

Nepomuk

  • nepomuk
  • query
term.h
Go to the documentation of this file.
1 /*
2  This file is part of the Nepomuk KDE project.
3  Copyright (C) 2007-2010 Sebastian Trueg <trueg@kde.org>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License version 2 as published by the Free Software Foundation.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Library General Public License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to
16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  Boston, MA 02110-1301, USA.
18  */
19 
20 #ifndef _NEPOMUK_SEARCH_TERM_H_
21 #define _NEPOMUK_SEARCH_TERM_H_
22 
23 #include <QtCore/QList>
24 #include <QtCore/QUrl>
25 #include <QtCore/QSharedDataPointer>
26 
27 #include <Soprano/LiteralValue>
28 
29 #include "nepomukquery_export.h"
30 
31 namespace Nepomuk {
32 
33  class Variant;
34 
35  namespace Types {
36  class Property;
37  }
38 
39  namespace Query {
40 
41  class LiteralTerm;
42  class ResourceTerm;
43  class NegationTerm;
44  class AndTerm;
45  class OrTerm;
46  class ComparisonTerm;
47  class ResourceTypeTerm;
48  class OptionalTerm;
49 
50  class TermPrivate;
51 
64  class NEPOMUKQUERY_EXPORT Term
65  {
66  public:
72  enum Type {
76  Invalid,
77 
84  Literal,
85 
91  Resource,
92 
98  And,
99 
105  Or,
106 
113  Comparison,
114 
120  ResourceType,
121 
127  Negation,
128 
136  Optional
137  };
138 
142  Term();
143 
147  Term( const Term& other );
148 
152  ~Term();
153 
157  Term& operator=( const Term& other );
158 
163  bool isValid() const;
164 
168  Type type() const;
169 
181  Term optimized() const;
182 
186  bool isLiteralTerm() const;
187 
191  bool isResourceTerm() const;
192 
196  bool isNegationTerm() const;
197 
203  bool isOptionalTerm() const;
204 
208  bool isAndTerm() const;
209 
213  bool isOrTerm() const;
214 
218  bool isComparisonTerm() const;
219 
223  bool isResourceTypeTerm() const;
224 
231  LiteralTerm toLiteralTerm() const;
232 
239  ResourceTerm toResourceTerm() const;
240 
247  NegationTerm toNegationTerm() const;
248 
257  OptionalTerm toOptionalTerm() const;
258 
265  AndTerm toAndTerm() const;
266 
273  OrTerm toOrTerm() const;
274 
281  ComparisonTerm toComparisonTerm() const;
282 
289  ResourceTypeTerm toResourceTypeTerm() const;
290 
298  LiteralTerm& toLiteralTerm();
299 
307  ResourceTerm& toResourceTerm();
308 
316  NegationTerm& toNegationTerm();
317 
327  OptionalTerm& toOptionalTerm();
328 
336  AndTerm& toAndTerm();
337 
345  OrTerm& toOrTerm();
346 
354  ComparisonTerm& toComparisonTerm();
355 
363  ResourceTypeTerm& toResourceTypeTerm();
364 
374  QString toString() const;
375 
385  static Term fromString( const QString& s );
386 
398  static Term fromVariant( const Variant& variant );
399 
412  static Term fromProperty( const Types::Property& property, const Variant& variant );
413 
419  bool operator==( const Term& term ) const;
420 
428  bool operator!=( const Term& term ) const;
429 
430  // FIXME: the compiler does not find this operator!
431  QDebug operator<<( QDebug ) const;
432 
434  protected:
435  Term( TermPrivate* );
436 
437  QSharedDataPointer<TermPrivate> d_ptr;
438 
439  friend class TermPrivate;
440  friend class GroupTermPrivate;
441  friend class AndTermPrivate;
442  friend class OrTermPrivate;
443  friend class ComparisonTermPrivate;
444  friend class NegationTermPrivate;
445  friend class OptionalTermPrivate;
446  friend class Query;
447  friend class QueryPrivate;
449  };
450 
459  NEPOMUKQUERY_EXPORT Term operator&&( const Term& term1, const Term& term2 );
460 
469  NEPOMUKQUERY_EXPORT Term operator||( const Term& term1, const Term& term2 );
470 
480  NEPOMUKQUERY_EXPORT Term operator!( const Term& term );
481 
496  NEPOMUKQUERY_EXPORT ComparisonTerm operator<( const Types::Property& property, const Term& term );
497 
512  NEPOMUKQUERY_EXPORT ComparisonTerm operator>( const Types::Property& property, const Term& term );
513 
528  NEPOMUKQUERY_EXPORT ComparisonTerm operator<=( const Types::Property& property, const Term& term );
529 
544  NEPOMUKQUERY_EXPORT ComparisonTerm operator>=( const Types::Property& property, const Term& term );
545 
560  NEPOMUKQUERY_EXPORT ComparisonTerm operator==( const Types::Property& property, const Term& term );
561 
578  NEPOMUKQUERY_EXPORT Term operator!=( const Types::Property& property, const Term& term );
579 
580  NEPOMUKQUERY_EXPORT uint qHash( const Nepomuk::Query::Term& );
581  }
582 
583 }
584 
586 // there is a hand written instantiation of clone()
587 template<> Nepomuk::Query::TermPrivate* QSharedDataPointer<Nepomuk::Query::TermPrivate>::clone();
590 // FIXME: the compiler does not find the operator in the class
591 NEPOMUKQUERY_EXPORT QDebug operator<<( QDebug, const Nepomuk::Query::Term& );
592 
593 #endif
Nepomuk::Query::NegationTerm
Negate an arbitrary term.
Definition: negationterm.h:48
Nepomuk::Query::Term::isComparisonTerm
bool isComparisonTerm() const
Nepomuk::Query::Term::isResourceTerm
bool isResourceTerm() const
Nepomuk::Query::Term::toNegationTerm
NegationTerm toNegationTerm() const
Interpret this term as a NegationTerm.
Nepomuk::Query::Term::Negation
@ Negation
A negation term inverts the meaning of its sub term.
Definition: term.h:127
Nepomuk::Query::Term
The base class for all term types.
Definition: term.h:65
Nepomuk::Query::Term::optimized
Term optimized() const
Optimizes the term without changing its meaning.
Nepomuk::Query::ComparisonTerm::operator<=
ComparisonTerm operator<=(const Types::Property &property, const Term &term)
Comparision operator for simple creation of ComparisonTerm objects using the ComparisonTerm::SmallerO...
Nepomuk::Query::Term::isAndTerm
bool isAndTerm() const
Nepomuk::Query::Term::operator==
bool operator==(const Term &term) const
Comparison operator.
Nepomuk::Query::Term::Type
Type
The type of a term identifying its meaning.
Definition: term.h:72
Nepomuk::Query::ComparisonTerm::operator<
ComparisonTerm operator<(const Types::Property &property, const Term &term)
Comparision operator for simple creation of ComparisonTerm objects using the ComparisonTerm::Smaller ...
Nepomuk::Query::ResourceTypeTerm
Matching resources by type.
Definition: resourcetypeterm.h:49
Nepomuk
Nepomuk::Query::Term::operator<<
QDebug operator<<(QDebug) const
Nepomuk::Query::Term::fromVariant
static Term fromVariant(const Variant &variant)
Construct a Term from a Variant value.
Nepomuk::Query::Term::operator!=
bool operator!=(const Term &term) const
Comparison operator.
Nepomuk::Query::qHash
uint qHash(const Nepomuk::Query::Query &)
Nepomuk::Query::Term::toNegationTerm
NegationTerm & toNegationTerm()
Convert this term into a NegationTerm.
Nepomuk::Query::Term::toOptionalTerm
OptionalTerm toOptionalTerm() const
Interpret this term as a OptionalTerm.
Nepomuk::Query::Term::isResourceTypeTerm
bool isResourceTypeTerm() const
Nepomuk::Query::AndTerm
Match resource that match all sub terms.
Definition: andterm.h:44
Nepomuk::Query::Term::isOrTerm
bool isOrTerm() const
Nepomuk::Query::Term::isValid
bool isValid() const
Nepomuk::Query::AndTerm::operator&&
Term operator&&(const Term &term1, const Term &term2)
Logical and operator which combines two terms into one term matching both term1 and term2.
Nepomuk::Query::Term::Resource
@ Resource
A resource term matches one resource by URI.
Definition: term.h:91
Nepomuk::Query::Term::isOptionalTerm
bool isOptionalTerm() const
Nepomuk::Query::Term::ResourceType
@ ResourceType
Matches all resources of a specific type.
Definition: term.h:120
Nepomuk::Query::Term::toLiteralTerm
LiteralTerm toLiteralTerm() const
Interpret this term as a LiteralTerm.
Nepomuk::Query::ComparisonTerm::operator>
ComparisonTerm operator>(const Types::Property &property, const Term &term)
Comparision operator for simple creation of ComparisonTerm objects using the ComparisonTerm::Greater ...
Nepomuk::Query::Term::toAndTerm
AndTerm toAndTerm() const
Interpret this term as a AndTerm.
Nepomuk::Query::Term::And
@ And
Match all resources that match all sub terms.
Definition: term.h:98
Nepomuk::Query::Term::toResourceTerm
ResourceTerm toResourceTerm() const
Interpret this term as a ResourceTerm.
Nepomuk::Query::Term::Term
Term(const Term &other)
Copy constructor.
Nepomuk::Query::Term::~Term
~Term()
Destructor.
Nepomuk::Query::Term::toAndTerm
AndTerm & toAndTerm()
Convert this term into a AndTerm.
Nepomuk::Query::Term::Invalid
@ Invalid
An invalid term matching nothing.
Definition: term.h:76
Nepomuk::Query::ComparisonTerm::operator>=
ComparisonTerm operator>=(const Types::Property &property, const Term &term)
Comparision operator for simple creation of ComparisonTerm objects using the ComparisonTerm::GreaterO...
Nepomuk::Query::OrTerm::operator||
Term operator||(const Term &term1, const Term &term2)
Logical or operator which combines two terms into one term matching either term1 or term2.
Nepomuk::Query::Term::toLiteralTerm
LiteralTerm & toLiteralTerm()
Convert this term into a LiteralTerm.
Nepomuk::Query::Term::isNegationTerm
bool isNegationTerm() const
Nepomuk::Query::ComparisonTerm::operator==
ComparisonTerm operator==(const Types::Property &property, const Term &term)
Comparision operator for simple creation of ComparisonTerm objects using the ComparisonTerm::Equal co...
Nepomuk::Query::ResourceTerm
Matches exactly one resource.
Definition: resourceterm.h:53
Nepomuk::Query::Term::toResourceTerm
ResourceTerm & toResourceTerm()
Convert this term into a ResourceTerm.
Nepomuk::Query::Term::operator=
Term & operator=(const Term &other)
Copy operator.
Nepomuk::Query::Term::Or
@ Or
Match all resources that match one of the sub terms.
Definition: term.h:105
Nepomuk::Query::Term::Term
Term()
Constructs an invalid term.
Nepomuk::Query::Term::toOrTerm
OrTerm & toOrTerm()
Convert this term into a OrTerm.
Nepomuk::Query::Term::type
Type type() const
Nepomuk::Query::Term::toResourceTypeTerm
ResourceTypeTerm toResourceTypeTerm() const
Interpret this term as a ResourceTypeTerm.
Nepomuk::Query::OptionalTerm
Make a term optional.
Definition: optionalterm.h:47
Nepomuk::Query::Term::toString
QString toString() const
Encode the Term in a string.
Nepomuk::Query::Term::fromProperty
static Term fromProperty(const Types::Property &property, const Variant &variant)
Create a term using a Types::Property and a Variant.
DateRange::operator<<
QDebug operator<<(QDebug dbg, const DateRange &range)
Debug streaming operator.
Nepomuk::Query::Term::toOrTerm
OrTerm toOrTerm() const
Interpret this term as a OrTerm.
nepomukquery_export.h
Nepomuk::Query::Term::toComparisonTerm
ComparisonTerm toComparisonTerm() const
Interpret this term as a ComparisonTerm.
Nepomuk::Query::Term::toResourceTypeTerm
ResourceTypeTerm & toResourceTypeTerm()
Convert this term into a ResourceTypeTerm.
Nepomuk::Query::Term::toOptionalTerm
OptionalTerm & toOptionalTerm()
Convert this term into a OptionalTerm.
Nepomuk::Query::Term::Comparison
@ Comparison
A comparison.
Definition: term.h:113
Nepomuk::Query::LiteralTerm
Match literal properties via full text.
Definition: literalterm.h:87
Nepomuk::Query::Term::isLiteralTerm
bool isLiteralTerm() const
Nepomuk::Query::Term::fromString
static Term fromString(const QString &s)
Parse a Term that has been encoded as a string via toString().
Nepomuk::Types::Property
A property is a resource of type rdf:Property which relates a domain with a range.
Definition: property.h:53
Nepomuk::Query::NegationTerm::operator!
Term operator!(const Term &term)
Logical negation operator which negates the meaning of one term.
Nepomuk::Query::ComparisonTerm::operator!=
Term operator!=(const Types::Property &property, const Term &term)
Comparision operator for simple creation of negated ComparisionTerm objects using the ComparisonTerm:...
Nepomuk::Query::ComparisonTerm
A term matching the value of a property.
Definition: comparisonterm.h:71
Nepomuk::Variant
The Nepomuk Variant extends over QVariant by introducing direct support for Resource embedding,...
Definition: variant.h:66
Nepomuk::Query::Query
A Nepomuk desktop query.
Definition: query.h:77
Nepomuk::Query::Term::toComparisonTerm
ComparisonTerm & toComparisonTerm()
Convert this term into a ComparisonTerm.
Nepomuk::Query::OrTerm
Match resource that match at least one of the sub terms.
Definition: orterm.h:44
Nepomuk::Query::Term::Literal
@ Literal
A literal term is the simplest form of Term.
Definition: term.h:84
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Thu Aug 27 2020 00:00:00 by doxygen 1.8.20 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Nepomuk

Skip menu "Nepomuk"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal