This file is indexed.

/usr/include/rdkit/GraphMol/QueryAtom.h is in librdkit-dev 201603.5+dfsg-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//
//  Copyright (C) 2001-2006 Greg Landrum and Rational Discovery LLC
//
//   @@ All Rights Reserved @@
//  This file is part of the RDKit.
//  The contents are covered by the terms of the BSD license
//  which is included in the file license.txt, found at the root
//  of the RDKit source tree.
//
#ifndef _RD_QUERYATOM_H_
#define _RD_QUERYATOM_H_

#include "Atom.h"
#include <Query/QueryObjects.h>
#include <GraphMol/QueryOps.h>

namespace RDKit {

//! Class for storing atomic queries
/*!
  QueryAtom objects are derived from Atom objects, so they can be
  added to molecules and the like, but they have much fancier
  querying capabilities.

 */
class QueryAtom : public Atom {
 public:
  typedef Queries::Query<int, Atom const *, true> QUERYATOM_QUERY;

  QueryAtom() : Atom(), dp_query(NULL){};
  explicit QueryAtom(int num) : Atom(num), dp_query(makeAtomNumQuery(num)){};
  explicit QueryAtom(const Atom &other)
      : Atom(other), dp_query(makeAtomNumQuery(other.getAtomicNum())){};
  QueryAtom(const QueryAtom &other) : Atom(other) {
    dp_query = other.dp_query->copy();
  };
  ~QueryAtom();

  //! returns a copy of this query, owned by the caller
  Atom *copy() const;

  // This method can be used to distinguish query atoms from standard atoms:
  bool hasQuery() const { return dp_query != 0; };

  //! replaces our current query with the value passed in
  void setQuery(QUERYATOM_QUERY *what) { dp_query = what; }
  //! returns our current query
  QUERYATOM_QUERY *getQuery() const { return dp_query; };

  //! expands our current query
  /*!
    \param what          the Queries::Query to be added
    \param how           the operator to be used in the expansion
    \param maintainOrder (optional) flags whether the relative order of
                         the queries needs to be maintained, if this is
                         false, the order is reversed
    <b>Notes:</b>
      - \c what should probably be constructed using one of the functions
         defined in QueryOps.h
      - the \c maintainOrder option can be useful because the combination
        operators short circuit when possible.

  */
  void expandQuery(QUERYATOM_QUERY *what,
                   Queries::CompositeQueryType how = Queries::COMPOSITE_AND,
                   bool maintainOrder = true);

  //! returns true if we match Atom \c what
  bool Match(const Atom::ATOM_SPTR &what) const;
  //! \overload
  bool Match(Atom const *what) const;

  //! returns true if our query details match those of QueryAtom \c what
  bool QueryMatch(QueryAtom const *what) const;

 private:
  QUERYATOM_QUERY *dp_query;

};  // end o' class

};  // end o' namespace

#endif