LibreOffice Module ucb (master)  1
regexp.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #pragma once
21 
22 #include <rtl/ustring.hxx>
23 
24 
25 namespace ucb_impl {
26 
27 class Regexp
28 {
29 public:
30  enum Kind
31  {
35  };
36 
37  inline bool operator ==(Regexp const & rOther) const;
38 
39  bool isDefault() const
40  { return m_eKind == KIND_PREFIX && m_aPrefix.isEmpty(); }
41 
42  Kind getKind() const { return m_eKind; }
43 
44  bool matches(OUString const & rString) const;
45 
46  OUString getRegexp() const;
47 
48  static Regexp parse(OUString const & rRegexp);
49 
50 private:
52  OUString m_aPrefix;
53  OUString m_aInfix;
54  OUString m_aReversePrefix;
57 
58  inline Regexp(Kind eTheKind, OUString const & rThePrefix,
59  bool bTheEmptyDomain, OUString const & rTheInfix,
60  bool bTheTranslation,
61  OUString const & rTheReversePrefix);
62 };
63 
64 inline bool Regexp::operator ==(Regexp const & rOther) const
65 {
66  return m_eKind == rOther.m_eKind
67  && m_aPrefix == rOther.m_aPrefix
68  && m_aInfix == rOther.m_aInfix;
69 }
70 
71 }
72 
73 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
bool m_bEmptyDomain
Definition: regexp.hxx:55
OUString m_aPrefix
Definition: regexp.hxx:52
OUString m_aReversePrefix
Definition: regexp.hxx:54
bool isDefault() const
Definition: regexp.hxx:39
bool operator==(Regexp const &rOther) const
Definition: regexp.hxx:64
Kind getKind() const
Definition: regexp.hxx:42
OUString m_aInfix
Definition: regexp.hxx:53
static Regexp parse(OUString const &rRegexp)
Definition: regexp.cxx:293
bool m_bTranslation
Definition: regexp.hxx:56
bool matches(OUString const &rString) const
Definition: regexp.cxx:80
Regexp(Kind eTheKind, OUString const &rThePrefix, bool bTheEmptyDomain, OUString const &rTheInfix, bool bTheTranslation, OUString const &rTheReversePrefix)
Definition: regexp.cxx:37
OUString getRegexp() const
Definition: regexp.cxx:173