OpendTect  6.6
odstring.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Bert
8  Date: Dec 2013
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "basicmod.h"
15 #include "gendefs.h"
16 
17 
18 namespace OD
19 {
20 
21 
31 {
32 public:
33 
34 
35  virtual ~String() {}
36 
37  inline bool operator==(const String&) const;
38  inline bool operator!=(const String&) const;
39  inline bool operator==(const char*) const;
40  inline bool operator!=(const char*) const;
41  template <class T>
42  inline bool operator==(const T&) const;
43  template <class T>
44  inline bool operator!=( const T& t ) const { return !(*this==t); }
45 
46  inline const char* buf() const { return gtBuf(); }
47  inline const char* str() const { return gtStr(); }
48  inline operator const char*() const { return gtBuf(); }
49  unsigned int size() const;
50  inline bool isEmpty() const { return !gtStr(); }
51  inline const char& operator []( int idx ) const { return gtBuf()[idx]; }
52  virtual char firstChar() const { return gtBuf()[0]; }
53  virtual char lastChar() const { return gtBuf()[size()-1]; }
54 
55 # define mODStringDefSens CaseSensitivity c=CaseSensitive
56  bool isEqual(const char*,mODStringDefSens) const;
57  bool isStartOf(const char*,mODStringDefSens) const;
58  bool startsWith(const char*,mODStringDefSens) const;
59  bool isEndOf(const char*,mODStringDefSens) const;
60  bool endsWith(const char*,mODStringDefSens) const;
61  bool matches(const char*,mODStringDefSens) const;
62 
63  bool contains(char) const;
64  bool contains(const char*) const;
65  const char* find(char) const;
66  const char* findLast(char) const;
67  const char* find(const char*) const;
68  const char* findLast(const char*) const;
69 
70  unsigned int count(char) const;
71  unsigned int getLevenshteinDist(const char*,bool casesens) const;
72 
73  bool isNumber(bool int_only=false) const;
74  bool isYesNo() const;
75  int toInt() const;
76  float toFloat() const;
77  double toDouble() const;
78  bool toBool() const;
79 
80  bool operator >(const String&) const;
81  bool operator <(const String&) const;
82  bool operator >(const char*) const;
83  bool operator <(const char*) const;
84  template <class T>
85  inline bool operator >(const T&) const;
86  template <class T>
87  inline bool operator <(const T&) const;
88 
89  static const String& empty();
90 
91 protected:
92 
93  virtual const char* gtBuf() const = 0;
95  virtual const char* gtStr() const = 0;
97 
98 };
99 
100 
101 
102 inline bool String::operator==( const String& s ) const
103 { return isEqual( s.gtStr() ); }
104 inline bool String::operator!=( const String& s ) const
105 { return !isEqual( s.gtStr() ); }
106 inline bool String::operator==( const char* s ) const
107 { return isEqual( s ); }
108 inline bool String::operator!=( const char* s ) const
109 { return !isEqual( s ); }
110 
111 inline bool String::operator >( const String& oth ) const
112 { return *this > oth.gtStr(); }
113 inline bool String::operator <( const String& oth ) const
114 { return *this < oth.gtStr(); }
115 
116 template <class T> inline bool String::operator==( const T& t ) const
117 { return isEqual( toString(t) ); }
118 template <class T> inline bool String::operator >( const T& t ) const
119 { return *this > ( toString( t ) ); }
120 template <class T> inline bool String::operator <( const T& t ) const
121 { return *this < ( toString( t ) ); }
122 
123 
124 } // namespace OD
OD::String::contains
bool contains(char) const
OD::String::gtBuf
virtual const char * gtBuf() const =0
OD::String::operator>
bool operator>(const String &) const
Definition: odstring.h:111
OD::String::lastChar
virtual char lastChar() const
Definition: odstring.h:53
OD::String::count
unsigned int count(char) const
OD::String::contains
bool contains(const char *) const
OD::String::toInt
int toInt() const
OD
OpendTect.
Definition: commontypes.h:28
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
OD::String::isEqual
bool isEqual(const char *, CaseSensitivity c=CaseSensitive) const
OD::String::operator!=
bool operator!=(const T &t) const
Definition: odstring.h:44
OD::String::startsWith
bool startsWith(const char *, CaseSensitivity c=CaseSensitive) const
OD::String::firstChar
virtual char firstChar() const
Definition: odstring.h:52
OD::String::isStartOf
bool isStartOf(const char *, CaseSensitivity c=CaseSensitive) const
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
OD::String::isNumber
bool isNumber(bool int_only=false) const
OD::String::getLevenshteinDist
unsigned int getLevenshteinDist(const char *, bool casesens) const
OD::String::find
const char * find(char) const
OD::String::endsWith
bool endsWith(const char *, CaseSensitivity c=CaseSensitive) const
OD::String::find
const char * find(const char *) const
OD::String::str
const char * str() const
Definition: odstring.h:47
OD::String::findLast
const char * findLast(const char *) const
operator!=
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:90
OD::String::isYesNo
bool isYesNo() const
OD::String::gtStr
virtual const char * gtStr() const =0
OD::String::operator<
bool operator<(const String &) const
Definition: odstring.h:113
gendefs.h
OD::String::buf
const char * buf() const
Definition: odstring.h:46
OD::String::isEmpty
bool isEmpty() const
Definition: odstring.h:50
OD::String::~String
virtual ~String()
Definition: odstring.h:35
OD::String::isEndOf
bool isEndOf(const char *, CaseSensitivity c=CaseSensitive) const
OD::String::size
unsigned int size() const
OD::String
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:31
OD::String::matches
bool matches(const char *, CaseSensitivity c=CaseSensitive) const
OD::String::findLast
const char * findLast(char) const
OD::String::operator!=
bool operator!=(const String &) const
Definition: odstring.h:104
OD::toString
Export_Basic const char * toString(PythonSource)
OD::String::operator==
bool operator==(const String &) const
Definition: odstring.h:102
operator>
bool operator>(const ObjectWithName &obj1, const ObjectWithName &obj2)
Definition: namedobj.h:95
OD::String::toBool
bool toBool() const
OD::String::toDouble
double toDouble() const
OD::String::empty
static const String & empty()
mODStringDefSens
#define mODStringDefSens
Definition: odstring.h:55
OD::String::toFloat
float toFloat() const

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021