OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ossimStringListProperty Class Reference

#include <ossimStringListProperty.h>

Inheritance diagram for ossimStringListProperty:
ossimProperty ossimObject ossimReferenced

Public Member Functions

 ossimStringListProperty (const ossimString &name=ossimString(""), const std::vector< ossimString > &value=std::vector< ossimString >())
 
 ossimStringListProperty (const ossimStringListProperty &rhs)
 
ossimObjectdup () const
 
virtual const ossimPropertyassign (const ossimProperty &rhs)
 
virtual bool setValue (const ossimString &value)
 
virtual void valueToString (ossimString &valueResult) const
 
void clearValueList ()
 
ossimString getValueAt (int idx) const
 
bool setValueAt (int idx, const ossimString &value)
 
bool addValue (const ossimString &value)
 
ossim_uint32 getNumberOfValues () const
 
ossim_uint32 getNumberOfContraints () const
 
ossimString getConstraintAt (ossim_uint32 idx) const
 
void setConstraints (const std::vector< ossimString > &constraints)
 
bool hasConstraints () const
 
void setUniqueFlag (bool flag)
 
void setOrderMattersFlag (bool flag)
 
void setNumberOfValuesBounds (int minNumber, int maxNumber)
 
void getNumberofValuesBounds (int &minNumber, int &maxNumber) const
 
- Public Member Functions inherited from ossimProperty
 ossimProperty (const ossimString &name=ossimString(""))
 
 ossimProperty (const ossimProperty &rhs)
 
const ossimPropertyoperator= (const ossimProperty &rhs)
 
const ossimStringgetName () const
 
void setName (const ossimString &name)
 
virtual ossimString valueToString () const
 
virtual const ossimContainerPropertyasContainer () const
 
virtual ossimContainerPropertyasContainer ()
 
bool isChangeTypeSet (int type) const
 
void clearChangeType ()
 
void setChangeType (int type, bool on=true)
 
void setFullRefreshBit ()
 
void setCacheRefreshBit ()
 
ossimPropertyChangeType getChangeType () const
 
bool isFullRefresh () const
 
bool isCacheRefresh () const
 
bool isChangeTypeSpecified () const
 
bool affectsOthers () const
 
virtual void setReadOnlyFlag (bool flag)
 
bool getReadOnlyFlag () const
 
bool isReadOnly () const
 
void setModifiedFlag (bool flag)
 
bool getModifiedFlag () const
 
bool isModified () const
 
void clearModifiedFlag ()
 
void setDescription (const ossimString &description)
 
virtual ossimString getDescription () const
 
virtual ossimRefPtr< ossimXmlNodetoXml () const
 
virtual void saveState (ossimKeywordlist &kwl, const ossimString &prefix="") const
 
virtual void accept (ossimVisitor &visitor)
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 

Protected Member Functions

bool findValueInConstraintList (const ossimString &value) const
 
bool findValueInValueList (const ossimString &value) const
 
bool canAddValue (const ossimString &value) const
 
- Protected Member Functions inherited from ossimProperty
virtual ~ossimProperty ()
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Protected Attributes

std::vector< ossimStringtheValueList
 
std::vector< ossimStringtheConstraintList
 
bool theUniqueFlag
 
bool theOrderMattersFlag
 
int theMinNumberOfValues
 
int theMaxNumberOfValues
 
- Protected Attributes inherited from ossimProperty
ossimString theName
 
ossimString theDescription
 
bool theReadOnlyFlag
 
ossimPropertyChangeType theChangeType
 
bool theModifiedFlag
 

Additional Inherited Members

- Public Types inherited from ossimProperty
enum  ossimPropertyChangeType {
  ossimPropertyChangeType_NOTSPECIFIED = 0, ossimPropertyChangeType_CACHE_REFRESH = 1, ossimPropertyChangeType_FULL_REFRESH = 2, ossimPropertyChangeType_AFFECTS_OTHERS = 4,
  ossimPropertyChangeType_ALL = (ossimPropertyChangeType_CACHE_REFRESH|ossimPropertyChangeType_FULL_REFRESH|ossimPropertyChangeType_AFFECTS_OTHERS)
}
 

Detailed Description

Definition at line 14 of file ossimStringListProperty.h.

Constructor & Destructor Documentation

◆ ossimStringListProperty() [1/2]

ossimStringListProperty::ossimStringListProperty ( const ossimString name = ossimString(""),
const std::vector< ossimString > &  value = std::vector<ossimString>() 
)

Definition at line 17 of file ossimStringListProperty.cpp.

Referenced by dup().

19  :ossimProperty(name),
20  theValueList(value),
21  theUniqueFlag(false),
22  theOrderMattersFlag(false)
23 {
24 }
ossimProperty(const ossimString &name=ossimString(""))
std::vector< ossimString > theValueList

◆ ossimStringListProperty() [2/2]

ossimStringListProperty::ossimStringListProperty ( const ossimStringListProperty rhs)

Member Function Documentation

◆ addValue()

bool ossimStringListProperty::addValue ( const ossimString value)

Definition at line 150 of file ossimStringListProperty.cpp.

References canAddValue(), and theValueList.

Referenced by setValue().

151 {
152  bool result = true;
153 
154  if(canAddValue(value))
155  {
156  theValueList.push_back(value);
157  }
158  else
159  {
160  result = false;
161  }
162 
163  return result;
164 }
std::vector< ossimString > theValueList
bool canAddValue(const ossimString &value) const

◆ assign()

const ossimProperty & ossimStringListProperty::assign ( const ossimProperty rhs)
virtual

Reimplemented from ossimProperty.

Definition at line 42 of file ossimStringListProperty.cpp.

References ossimProperty::assign(), theConstraintList, theMaxNumberOfValues, theMinNumberOfValues, theOrderMattersFlag, theUniqueFlag, and theValueList.

43 {
45 
46  const ossimStringListProperty *rhsPtr = dynamic_cast<const ossimStringListProperty*>(&rhs);
47  if(rhsPtr)
48  {
49  theValueList = rhsPtr->theValueList;
51  theUniqueFlag = rhsPtr->theUniqueFlag;
55  }
56 
57  return *this;
58 }
std::vector< ossimString > theValueList
virtual const ossimProperty & assign(const ossimProperty &rhs)
std::vector< ossimString > theConstraintList

◆ canAddValue()

bool ossimStringListProperty::canAddValue ( const ossimString value) const
protected

Definition at line 234 of file ossimStringListProperty.cpp.

References findValueInConstraintList(), findValueInValueList(), hasConstraints(), and theUniqueFlag.

Referenced by addValue(), and setValueAt().

235 {
236  bool result = true;
237 
238  if(hasConstraints())
239  {
240  if(findValueInConstraintList(value))
241  {
242  if(theUniqueFlag)
243  {
244  if(findValueInValueList(value))
245  {
246  result = false;
247  }
248  }
249  }
250  else
251  {
252  result = false;
253  }
254  }
255 
256  return result;
257 }
bool findValueInValueList(const ossimString &value) const
bool findValueInConstraintList(const ossimString &value) const

◆ clearValueList()

void ossimStringListProperty::clearValueList ( )

Definition at line 113 of file ossimStringListProperty.cpp.

References theValueList.

Referenced by setValue().

114 {
115  theValueList.clear();
116 }
std::vector< ossimString > theValueList

◆ dup()

ossimObject * ossimStringListProperty::dup ( ) const
virtual

Reimplemented from ossimObject.

Definition at line 37 of file ossimStringListProperty.cpp.

References ossimStringListProperty().

38 {
39  return new ossimStringListProperty(*this);
40 }
ossimStringListProperty(const ossimString &name=ossimString(""), const std::vector< ossimString > &value=std::vector< ossimString >())

◆ findValueInConstraintList()

bool ossimStringListProperty::findValueInConstraintList ( const ossimString value) const
protected

Definition at line 220 of file ossimStringListProperty.cpp.

References theConstraintList.

Referenced by canAddValue().

221 {
222  return (std::find(theConstraintList.begin(),
223  theConstraintList.end(),
224  value)!=theConstraintList.end());
225 }
std::vector< ossimString > theConstraintList

◆ findValueInValueList()

bool ossimStringListProperty::findValueInValueList ( const ossimString value) const
protected

Definition at line 227 of file ossimStringListProperty.cpp.

References theConstraintList, and theValueList.

Referenced by canAddValue().

228 {
229  return (std::find(theValueList.begin(),
230  theValueList.end(),
231  value)!=theConstraintList.end());
232 }
std::vector< ossimString > theValueList
std::vector< ossimString > theConstraintList

◆ getConstraintAt()

ossimString ossimStringListProperty::getConstraintAt ( ossim_uint32  idx) const

Definition at line 176 of file ossimStringListProperty.cpp.

References theConstraintList.

177 {
178  if(idx < theConstraintList.size())
179  {
180  return theConstraintList[(int)idx];
181  }
182 
183  return ossimString("");
184 }
std::vector< ossimString > theConstraintList

◆ getNumberOfContraints()

ossim_uint32 ossimStringListProperty::getNumberOfContraints ( ) const

Definition at line 171 of file ossimStringListProperty.cpp.

References theConstraintList.

172 {
173  return (ossim_uint32)theConstraintList.size();
174 }
unsigned int ossim_uint32
std::vector< ossimString > theConstraintList

◆ getNumberOfValues()

ossim_uint32 ossimStringListProperty::getNumberOfValues ( ) const

Definition at line 166 of file ossimStringListProperty.cpp.

References theValueList.

Referenced by getValueAt(), and setValueAt().

167 {
168  return (int)theValueList.size();
169 }
std::vector< ossimString > theValueList

◆ getNumberofValuesBounds()

void ossimStringListProperty::getNumberofValuesBounds ( int &  minNumber,
int &  maxNumber 
) const

Definition at line 213 of file ossimStringListProperty.cpp.

References theMaxNumberOfValues, and theMinNumberOfValues.

215 {
216  minNumber = theMinNumberOfValues;
217  maxNumber = theMaxNumberOfValues;
218 }

◆ getValueAt()

ossimString ossimStringListProperty::getValueAt ( int  idx) const

Definition at line 118 of file ossimStringListProperty.cpp.

References getNumberOfValues(), and theValueList.

119 {
120  if((idx >= 0)&&
121  (idx < (int)getNumberOfValues()))
122  {
123  return theValueList[idx];
124  }
125 
126  return ossimString("");;
127 }
std::vector< ossimString > theValueList
ossim_uint32 getNumberOfValues() const

◆ hasConstraints()

bool ossimStringListProperty::hasConstraints ( ) const

Definition at line 191 of file ossimStringListProperty.cpp.

References theConstraintList.

Referenced by canAddValue().

192 {
193  return (theConstraintList.size()>0);
194 }
std::vector< ossimString > theConstraintList

◆ setConstraints()

void ossimStringListProperty::setConstraints ( const std::vector< ossimString > &  constraints)

Definition at line 186 of file ossimStringListProperty.cpp.

References theConstraintList.

187 {
188  theConstraintList = constraints;
189 }
std::vector< ossimString > theConstraintList

◆ setNumberOfValuesBounds()

void ossimStringListProperty::setNumberOfValuesBounds ( int  minNumber,
int  maxNumber 
)

You can specify how many values are allowed in the value list If any of the values are less than 0 then now constraints are placed on that value. So if the min was < 0 then there is no minumum number of values. If the max is < 0 then there is no maximum number of values.

Definition at line 206 of file ossimStringListProperty.cpp.

References theMaxNumberOfValues, and theMinNumberOfValues.

208 {
209  theMinNumberOfValues = minNumber;
210  theMaxNumberOfValues = maxNumber;
211 }

◆ setOrderMattersFlag()

void ossimStringListProperty::setOrderMattersFlag ( bool  flag)

Definition at line 201 of file ossimStringListProperty.cpp.

References theOrderMattersFlag.

202 {
203  theOrderMattersFlag = flag;
204 }

◆ setUniqueFlag()

void ossimStringListProperty::setUniqueFlag ( bool  flag)

Definition at line 196 of file ossimStringListProperty.cpp.

References theUniqueFlag.

197 {
198  theUniqueFlag = flag;
199 }

◆ setValue()

bool ossimStringListProperty::setValue ( const ossimString value)
virtual

Implements ossimProperty.

Definition at line 60 of file ossimStringListProperty.cpp.

References addValue(), clearValueList(), ossimKeywordlist::find(), ossimKeywordlist::getSubstringKeyList(), ossimKeywordlist::parseStream(), and ossimString::toString().

61 {
62  ossimKeywordlist kwl;
63  std::istringstream in(value);
64  bool result = true;
65 
66  if(kwl.parseStream(in))
67  {
68  int idx = 0;
69  std::vector<ossimString> keys =
70  kwl.getSubstringKeyList( "^([0-9]*" );
71 
72  std::vector<int> theNumberList(keys.size());
73  for(idx = 0; idx < (int)theNumberList.size();++idx)
74  {
75  theNumberList[idx] = keys[idx].toInt();
76  }
77  std::sort(theNumberList.begin(), theNumberList.end());
79  for(idx = 0; idx < (int)theNumberList.size(); ++idx)
80  {
81  const char* temp = kwl.find(ossimString::toString(theNumberList[idx]));
82 
83  if(temp)
84  {
85  addValue(temp);
86  }
87  }
88  }
89  else
90  {
91  result = false;
92  }
93 
94  return result;
95 }
Represents serializable keyword/value map.
const char * find(const char *key) const
static ossimString toString(bool aValue)
Numeric to string methods.
bool addValue(const ossimString &value)
std::vector< ossimString > getSubstringKeyList(const ossimString &regularExpression) const
virtual bool parseStream(ossim::istream &is, bool ignoreBinaryChars)
deprecated method
std::basic_istringstream< char > istringstream
Class for char input memory streams.
Definition: ossimIosFwd.h:32

◆ setValueAt()

bool ossimStringListProperty::setValueAt ( int  idx,
const ossimString value 
)

Definition at line 129 of file ossimStringListProperty.cpp.

References canAddValue(), getNumberOfValues(), and theValueList.

131 {
132  bool result = true;
133 
134  if(canAddValue(value))
135  {
136  if((idx < (int)getNumberOfValues())&&
137  (idx >= 0))
138  {
139  theValueList[idx] = value;
140  }
141  }
142  else
143  {
144  result = false;
145  }
146  return result;
147 
148 }
std::vector< ossimString > theValueList
bool canAddValue(const ossimString &value) const
ossim_uint32 getNumberOfValues() const

◆ valueToString()

void ossimStringListProperty::valueToString ( ossimString valueResult) const
virtual

Implements ossimProperty.

Definition at line 97 of file ossimStringListProperty.cpp.

References ossimKeywordlist::add(), theValueList, ossimKeywordlist::toString(), and ossimString::toString().

98 {
99  ossimKeywordlist kwl;
100  int idx = 0;
101 
102  for(idx = 0; idx < (int)theValueList.size(); ++idx)
103  {
104  kwl.add(ossimString::toString(idx).c_str(),
105  theValueList[idx],
106  true);
107  }
108 
109  valueResult = kwl.toString();
110 }
Represents serializable keyword/value map.
static ossimString toString(bool aValue)
Numeric to string methods.
std::vector< ossimString > theValueList
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual ossimString toString() const

Member Data Documentation

◆ theConstraintList

std::vector<ossimString> ossimStringListProperty::theConstraintList
protected

◆ theMaxNumberOfValues

int ossimStringListProperty::theMaxNumberOfValues
protected

◆ theMinNumberOfValues

int ossimStringListProperty::theMinNumberOfValues
protected

◆ theOrderMattersFlag

bool ossimStringListProperty::theOrderMattersFlag
protected

Definition at line 56 of file ossimStringListProperty.h.

Referenced by assign(), and setOrderMattersFlag().

◆ theUniqueFlag

bool ossimStringListProperty::theUniqueFlag
protected

Definition at line 55 of file ossimStringListProperty.h.

Referenced by assign(), canAddValue(), and setUniqueFlag().

◆ theValueList

std::vector<ossimString> ossimStringListProperty::theValueList
protected

The documentation for this class was generated from the following files: