OpendTect  6.6
bufstringset.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: Oct 2003
9  Contents: Set of BufferStrings
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "basicmod.h"
15 #include "bufstring.h"
16 #include "manobjectset.h"
17 class GlobExpr;
18 class uiString;
19 class uiStringSet;
20 mFDQtclass( QString )
21 mFDQtclass( QStringList )
22 
23 
25 mExpClass(Basic) BufferStringSet : public OD::Set
27 public:
28 
30 
32  explicit BufferStringSet(size_type n,const char* s=nullptr);
33  explicit BufferStringSet(const char* arr[],size_type len=-1);
34  explicit BufferStringSet(const char*);
35  BufferStringSet(const char*,const char*);
36  BufferStringSet(const char*,const char*,const char*);
38  { return new BufferStringSet(*this); }
39  virtual ~BufferStringSet() {}
40  bool operator ==(const BufferStringSet&) const;
41  bool operator !=(const BufferStringSet&) const;
42 
43  inline size_type size() const { return strs_.size(); }
44  inline bool isEmpty() const { return strs_.isEmpty(); }
45  virtual bool validIdx( od_int64 i ) const
46  { return strs_.validIdx(i); }
48  ) const;
49  idx_type indexOf(const GlobExpr&) const;
50  idx_type indexOf( const BufferString* b ) const
51  { return strs_.indexOf(b); }
52  inline bool isPresent( const BufferString* b ) const
53  { return strs_.isPresent(b);}
54  inline bool isPresent( const char* s,
56  { return indexOf(s,c) >= 0; }
57  BufferString& get( idx_type idx ) { return *strs_.get(idx); }
58  const BufferString& get( idx_type idx ) const { return *strs_.get(idx); }
59  BufferString* first() { return strs_.first(); }
60  const BufferString* first() const { return strs_.first(); }
61  BufferString* last() { return strs_.last(); }
62  const BufferString* last() const { return strs_.last(); }
63 
64  inline void setEmpty() { strs_.setEmpty(); }
65  virtual void erase() { setEmpty(); }
66  bool remove(const char*);
68  void removeRange( idx_type i1, idx_type i2 )
69  { strs_.removeRange(i1,i2); }
70  void swap( idx_type i1, idx_type i2 )
71  { strs_.swap( i1, i2 ); }
72 
73  BufferStringSet& add(const char*);
75  BufferStringSet& add(const mQtclass(QString)&);
76  BufferStringSet& add(const BufferStringSet&,bool allowduplicates);
77  BufferStringSet& add(const char* arr[],size_type len=-1);
78  BufferStringSet& add( BufferString* bs ) { strs_.add(bs); return *this; }
79  BufferStringSet& addToAll(const char*,bool infront=false);
80  bool addIfNew(const char*);
81  bool addIfNew(const OD::String&);
82  void append( const BufferStringSet& oth )
83  { strs_.append( oth.strs_ ); }
85 
86 # define mODBSSDefMatchSens CaseSensitivity cs=CaseInsensitive
87  idx_type nearestMatch(const char*,mODBSSDefMatchSens) const;
88  idx_type nearestMatch(const char*,bool caseinsens) const;
89  TypeSet<idx_type> getMatches(const char* globexpr,
90  mODBSSDefMatchSens) const;
91  bool isSubsetOf(const BufferStringSet&) const;
94  idx_type startat=0) const;
97 
98  void sort(bool caseinsens=true,bool asc=true);
99  idx_type* getSortIndexes(bool caseinsns=true,bool asc=true) const;
102  void useIndexes( const idx_type* idxs )
103  { strs_.useIndexes(idxs); }
104 
105  virtual void fillPar(IOPar&) const;
106  virtual void usePar(const IOPar&);
107 
108  void fill(uiStringSet&) const;
109  void use(const uiStringSet&);
110  void fill(mQtclass(QStringList)&) const;
111  void use(const mQtclass(QStringList)&);
112 
113  BufferString cat(const char* sepstr="\n") const;
114  void unCat(const char*,const char* sepstr="\n");
115 
117  bool quoted=true) const;
118 
119  void removeSingle( idx_type i, bool ) { removeSingle(i); }
120 
121  // uncommon stuff
122  BufferString* operator[]( idx_type idx ) { return strs_[idx]; }
123  const BufferString* operator[]( idx_type idx ) const { return strs_[idx]; }
124  const SetType& getStringSet() const { return strs_; }
125  SetType& getStringSet() { return strs_; }
127 
128  void setNullAllowed( bool yn=true )
129  { strs_.setNullAllowed( yn ); }
130  BufferStringSet& operator +=( BufferString* bs ) { return add(bs); }
132  { set( idx, bs ); return *this; }
134  { strs_.replace(idx,bs); return *this; }
135  void insertAt( BufferString* bs, idx_type idx )
136  { strs_.insertAt(bs,idx); }
137 
138  // remainder of OD::Set interface
139 
140  virtual od_int64 nrItems() const { return size(); }
141  virtual void swapItems( od_int64 i1, od_int64 i2 )
142  { swap( idx_type(i1), idx_type(i2) ); }
143  virtual void reverse() { strs_.reverse(); }
144 
145 public:
146 
147  mDeprecated("Use a set") BufferStringSet& operator=(const char* arr[]);
149 
150  inline void allowNull(bool yn=true) { strs_.setNullAllowed(yn); }
151 
152 };
153 
155 
157 { return bss.cat( " " ); }
158 
159 
160 mGlobal(Basic) mDeprecated("Use setEmpty") void deepErase(BufferStringSet&);
161 mGlobal(Basic) mDeprecated("Use equal") void deepCopy(BufferStringSet&,
162  const BufferStringSet&);
164 mGlobal(Basic) mDeprecated("Use getStringSet()") const BufferString*
165  find(const BufferStringSet&,const char*);
166 mGlobal(Basic) mDeprecated("Use member function") BufferStringSet::idx_type
167  indexOf(const BufferStringSet&,const char*);
BufferStringSet::erase
virtual void erase()
Definition: bufstringset.h:65
BufferStringSet::~BufferStringSet
virtual ~BufferStringSet()
Definition: bufstringset.h:39
BufferStringSet::replace
BufferStringSet & replace(idx_type idx, BufferString *bs)
Definition: bufstringset.h:131
BufferStringSet::fill
void fill(::QStringList &) const
BufferStringSet::isPresent
bool isPresent(const BufferString *b) const
Definition: bufstringset.h:52
BufferStringSet::getMatches
TypeSet< idx_type > getMatches(const char *globexpr, CaseSensitivity cs=CaseInsensitive) const
BufferStringSet::operator[]
BufferString * operator[](idx_type idx)
Definition: bufstringset.h:122
BufferStringSet::removeSingle
void removeSingle(idx_type i, bool)
Definition: bufstringset.h:119
BufferStringSet::get
BufferString & get(idx_type idx)
Definition: bufstringset.h:57
ObjectSet::removeRange
virtual void removeRange(idx_type from, idx_type to)
Definition: objectset.h:563
uiStringSet::strs_
impl_type strs_
Definition: uistringset.h:24
BufferStringSet::SetType
ObjectSet< BufferString > SetType
Definition: bufstringset.h:29
BufferStringSet::swapItems
virtual void swapItems(int64_t i1, int64_t i2)
Definition: bufstringset.h:141
BufferStringSet::size_type
impl_type::size_type size_type
Definition: bufstringset.h:26
mIsContainer
#define mIsContainer(clss, typ, memb)
Definition: odset.h:83
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
BufferStringSet::BufferStringSet
BufferStringSet()
Definition: bufstringset.h:31
uiStringSet
Definition: uistringset.h:23
ObjectSet< BufferString >
ObjectSet::setNullAllowed
void setNullAllowed(bool yn=true)
Definition: objectset.h:371
BufferStringSet::remove
bool remove(const char *)
deepCopy
void deepCopy(BufferStringSet &, const BufferStringSet &)
BufferStringSet::getStringSet
const SetType & getStringSet() const
Definition: bufstringset.h:124
BufferStringSet::sort
void sort(bool caseinsens=true, bool asc=true)
ObjectSet::add
ObjectSet & add(T *t)
Definition: objectset.h:69
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
od_int64
#define od_int64
Definition: plftypes.h:35
ObjectSet::removeSingle
virtual T * removeSingle(idx_type, bool keep_order=true)
Definition: objectset.h:547
OD
OpendTect.
Definition: commontypes.h:28
GlobExpr
Glob-expression matching like UNIX shells.
Definition: globexpr.h:26
BufferStringSet::fill
void fill(uiStringSet &) const
mFDQtclass
#define mFDQtclass(cls)
Definition: commondefs.h:233
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
ObjectSet::first
T * first()
Definition: objectset.h:565
ObjectSet::reverse
virtual void reverse()
Definition: objectset.h:474
uiStringSet::operator+=
uiStringSet & operator+=(const uiString &s)
Definition: uistringset.h:61
mODBSSDefMatchSens
#define mODBSSDefMatchSens
Definition: bufstringset.h:86
BufferStringSet::BufferStringSet
BufferStringSet(const char *, const char *)
BufferStringSet::BufferStringSet
BufferStringSet(const char *, const char *, const char *)
BufferStringSet::nrItems
virtual int64_t nrItems() const
Definition: bufstringset.h:140
uiStringSet::setEmpty
void setEmpty()
ObjectSet::validIdx
virtual bool validIdx(int64_t) const
Definition: objectset.h:389
ObjectSet::size
size_type size() const
Definition: objectset.h:55
BufferStringSet::get
const BufferString & get(idx_type idx) const
Definition: bufstringset.h:58
operator==
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:81
BufferStringSet::removeRange
void removeRange(idx_type i1, idx_type i2)
Definition: bufstringset.h:68
BufferStringSet::add
BufferStringSet & add(const char *arr[], size_type len=-1)
BufferStringSet::first
const BufferString * first() const
Definition: bufstringset.h:60
BufferStringSet::strs_
impl_type strs_
Definition: bufstringset.h:26
BufferStringSet::getStringSet
SetType & getStringSet()
Definition: bufstringset.h:125
BufferStringSet::indexOf
idx_type indexOf(const GlobExpr &) const
first match
BufferStringSet::use
void use(const ::QStringList &)
bufstring.h
BufferStringSet::use
void use(const uiStringSet &)
ManagedObjectSet< BufferString >
BufferStringSet::commonStart
BufferString commonStart() const
BufferStringSet::getSortIndexes
idx_type * getSortIndexes(bool caseinsns=true, bool asc=true) const
BufferStringSet::hasUniqueNames
bool hasUniqueNames(CaseSensitivity c=CaseSensitive) const
BufferStringSet::maxLength
size_type maxLength() const
ObjectSet::isPresent
virtual bool isPresent(const T *) const
Definition: objectset.h:426
BufferStringSet::add
BufferStringSet & add(BufferString *bs)
Definition: bufstringset.h:78
BufferStringSet::setEmpty
void setEmpty()
Definition: bufstringset.h:64
uiStringSet::idx_type
impl_type::idx_type idx_type
Definition: uistringset.h:24
BufferStringSet::unCat
void unCat(const char *, const char *sepstr="\n")
BufferStringSet::isSubsetOf
bool isSubsetOf(const BufferStringSet &) const
find
const BufferString * find(const BufferStringSet &, const char *)
indexOf
BufferStringSet::idx_type indexOf(const BufferStringSet &, const char *)
BufferStringSet::add
BufferStringSet & add(const char *)
BufferStringSet::indexOf
idx_type indexOf(const char *, CaseSensitivity s=CaseSensitive) const
first match
BufferStringSet::addToAll
BufferStringSet & addToAll(const char *, bool infront=false)
ObjectSet::last
T * last()
Definition: objectset.h:569
operator!=
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:90
CaseSensitive
@ CaseSensitive
Definition: commontypes.h:40
sort
void sort(BufferStringSet &)
mDeprecated
#define mDeprecated(msg)
Definition: plfdefs.h:215
BufferStringSet::reverse
virtual void reverse()
Definition: bufstringset.h:143
BufferStringSet::getDispString
BufferString getDispString(size_type maxnritems=-1, bool quoted=true) const
BufferStringSet::usePar
virtual void usePar(const IOPar &)
ObjectSet::useIndexes
void useIndexes(const idx_type *)
Definition: objectset.h:462
BufferStringSet::fillPar
virtual void fillPar(IOPar &) const
BufferStringSet::BufferStringSet
BufferStringSet(const char *arr[], size_type len=-1)
BufferStringSet::isEmpty
bool isEmpty() const
Definition: bufstringset.h:44
BufferStringSet::clone
BufferStringSet * clone() const
Definition: bufstringset.h:37
Conv::set
void set(T &_to, const F &fr)
template based type conversion
Definition: convert.h:27
ObjectSet::swap
void swap(idx_type, idx_type)
Definition: objectset.h:448
ObjectSet::append
virtual void append(const ObjectSet &)
Definition: objectset.h:524
BufferStringSet::size
size_type size() const
Definition: bufstringset.h:43
copy
void copy(OD::ValVec< T, IT > &to, const OD::ValVec< S, IT > &from)
Definition: typeset.h:255
BufferStringSet::addIfNew
bool addIfNew(const char *)
returns whether added
BufferStringSet::cat
BufferString cat(const char *sepstr="\n") const
mDefContainerSwapFunction
#define mDefContainerSwapFunction(mod, clss)
Definition: odset.h:115
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
BufferStringSet::nearestMatch
idx_type nearestMatch(const char *, bool caseinsens) const
BufferStringSet::isPresent
bool isPresent(const char *s, CaseSensitivity c=CaseSensitive) const
Definition: bufstringset.h:54
BufferStringSet::add
BufferStringSet & add(const BufferStringSet &, bool allowduplicates)
deepErase
void deepErase(BufferStringSet &)
BufferStringSet::useIndexes
void useIndexes(const idx_type *idxs)
Definition: bufstringset.h:102
mQtclass
#define mQtclass(cls)
Definition: commondefs.h:234
BufferStringSet::last
const BufferString * last() const
Definition: bufstringset.h:62
BufferStringSet::append
void append(const BufferStringSet &oth)
Definition: bufstringset.h:82
ObjectSet::indexOf
virtual idx_type indexOf(const T *) const
Definition: objectset.h:420
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
BufferStringSet::indexOf
idx_type indexOf(const BufferString *b) const
Definition: bufstringset.h:50
BufferStringSet::setNullAllowed
void setNullAllowed(bool yn=true)
Definition: bufstringset.h:128
BufferStringSet::removeSingle
void removeSingle(idx_type i)
Definition: bufstringset.h:67
swap
void swap(BufferStringSet &o1, BufferStringSet &o2)
Definition: bufstringset.h:154
OD::String
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:31
BufferStringSet::set
BufferStringSet & set(idx_type idx, BufferString *bs)
Definition: bufstringset.h:133
BufferStringSet::addWordsFrom
BufferStringSet & addWordsFrom(const char *)
BufferStringSet::add
BufferStringSet & add(const ::QString &)
BufferStringSet::firstDuplicateOf
idx_type firstDuplicateOf(idx_type, CaseSensitivity c=CaseSensitive, idx_type startat=0) const
BufferStringSet::swap
void swap(idx_type i1, idx_type i2)
Definition: bufstringset.h:70
manobjectset.h
BufferStringSet::operator[]
const BufferString * operator[](idx_type idx) const
Definition: bufstringset.h:123
BufferStringSet::last
BufferString * last()
Definition: bufstringset.h:61
ObjectSet::insertAt
virtual void insertAt(T *newptr, idx_type)
Definition: objectset.h:497
BufferStringSet::insertAt
void insertAt(BufferString *bs, idx_type idx)
Definition: bufstringset.h:135
BufferStringSet::addIfNew
bool addIfNew(const OD::String &)
BufferStringSet::idx_type
impl_type::idx_type idx_type
Definition: bufstringset.h:26
BufferStringSet::getUiStringSet
uiStringSet getUiStringSet() const
uiStringSet::add
uiStringSet & add(const uiString &)
BufferStringSet::first
BufferString * first()
Definition: bufstringset.h:59
ObjectSet::get
virtual T * get(idx_type)
Definition: objectset.h:393
uiStringSet::size
size_type size() const
Definition: uistringset.h:41
CaseSensitivity
CaseSensitivity
Definition: commontypes.h:40
BufferStringSet::BufferStringSet
BufferStringSet(const char *)
BufferStringSet::add
BufferStringSet & add(const OD::String &)
toString
BufferString toString(const BufferStringSet &bss)
Definition: bufstringset.h:156
BufferStringSet::BufferStringSet
BufferStringSet(size_type n, const char *s=nullptr)
mODStringDefSens
#define mODStringDefSens
Definition: odstring.h:55
BufferStringSet::validIdx
virtual bool validIdx(int64_t i) const
Definition: bufstringset.h:45
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
ObjectSet::replace
virtual T * replace(idx_type, T *)
Definition: objectset.h:483
TypeSet< idx_type >

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