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

#include <ossimContainerProperty.h>

Inheritance diagram for ossimContainerProperty:
ossimProperty ossimObject ossimReferenced

Public Member Functions

 ossimContainerProperty (const ossimString &name=ossimString(""))
 
 ossimContainerProperty (const ossimContainerProperty &rhs)
 
virtual ~ossimContainerProperty ()
 
virtual ossimObjectdup () const
 
virtual const ossimPropertyassign (const ossimProperty &rhs)
 
virtual void addChildren (std::vector< ossimRefPtr< ossimProperty > > &propertyList)
 
virtual void addChild (ossimProperty *propery)
 
virtual void addStringProperty (const ossimString &name, const ossimString &value, bool readOnlyFlag=false)
 
virtual const ossimContainerPropertyasContainer () const
 
virtual ossimContainerPropertyasContainer ()
 
virtual ossimRefPtr< ossimPropertygetProperty (const ossimString &name, bool recurse=false)
 
virtual void deleteChildren ()
 
virtual bool setValue (const ossimString &value)
 
virtual void valueToString (ossimString &valueResult) const
 
virtual ossim_uint32 getNumberOfProperties () const
 
virtual ossimRefPtr< ossimPropertygetProperty (ossim_uint32 idx)
 
virtual void getPropertyList (std::vector< ossimRefPtr< ossimProperty > > &children) const
 
virtual ossimRefPtr< ossimXmlNodetoXml () const
 
virtual void setReadOnlyFlag (bool flag)
 
virtual void accept (ossimVisitor &visitor)
 
- 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
 
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
 
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 void saveState (ossimKeywordlist &kwl, const ossimString &prefix="") const
 
- 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

virtual void copyList (const ossimContainerProperty &rhs)
 
- Protected Member Functions inherited from ossimProperty
virtual ~ossimProperty ()
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Protected Attributes

std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList
 
- Protected Attributes inherited from ossimProperty
ossimString theName
 
ossimString theDescription
 
bool theReadOnlyFlag
 
ossimPropertyChangeType theChangeType
 
bool theModifiedFlag
 

Friends

class ossimProperty
 

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 15 of file ossimContainerProperty.h.

Constructor & Destructor Documentation

◆ ossimContainerProperty() [1/2]

ossimContainerProperty::ossimContainerProperty ( const ossimString name = ossimString(""))

Definition at line 15 of file ossimContainerProperty.cpp.

Referenced by dup().

16  :ossimProperty(name)
17 {
18 }

◆ ossimContainerProperty() [2/2]

ossimContainerProperty::ossimContainerProperty ( const ossimContainerProperty rhs)

Definition at line 20 of file ossimContainerProperty.cpp.

References copyList().

21  :ossimProperty(rhs)
22 {
23  copyList(rhs);
24 }
virtual void copyList(const ossimContainerProperty &rhs)

◆ ~ossimContainerProperty()

ossimContainerProperty::~ossimContainerProperty ( )
virtual

Definition at line 26 of file ossimContainerProperty.cpp.

References deleteChildren().

27 {
29 }

Member Function Documentation

◆ accept()

void ossimContainerProperty::accept ( ossimVisitor visitor)
virtual

Reimplemented from ossimProperty.

Definition at line 212 of file ossimContainerProperty.cpp.

References ossimProperty::accept(), ossimVisitor::getVisitorType(), ossimVisitor::hasVisited(), theChildPropertyList, and ossimVisitor::VISIT_CHILDREN.

213 {
214  ossim_uint32 idx = 0;
215  if(!visitor.hasVisited(this))
216  {
217  ossimProperty::accept(visitor);
219  {
220  for(idx = 0; idx < theChildPropertyList.size(); ++idx)
221  {
222  theChildPropertyList[idx]->accept(visitor);
223  }
224  }
225  }
226 }
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList
virtual void accept(ossimVisitor &visitor)
unsigned int ossim_uint32
bool hasVisited(ossimObject *obj) const
VisitorType getVisitorType() const

◆ addChild()

void ossimContainerProperty::addChild ( ossimProperty propery)
virtual

Definition at line 77 of file ossimContainerProperty.cpp.

References theChildPropertyList.

Referenced by addStringProperty(), and ossimMapCompositionSource::getProperty().

78 {
79  theChildPropertyList.push_back(property);
80 }
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList

◆ addChildren()

void ossimContainerProperty::addChildren ( std::vector< ossimRefPtr< ossimProperty > > &  propertyList)
virtual

Definition at line 66 of file ossimContainerProperty.cpp.

References theChildPropertyList.

Referenced by ossimNitf20Writer::getProperty(), ossimNitfWriter::getProperty(), and ossimDtedInfo::getProperty().

67 {
68  for(ossim_uint32 idx = 0; idx < propertyList.size(); ++idx)
69  {
70  if(propertyList[idx].valid())
71  {
72  theChildPropertyList.push_back(propertyList[idx]);
73  }
74  }
75 }
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList
unsigned int ossim_uint32

◆ addStringProperty()

void ossimContainerProperty::addStringProperty ( const ossimString name,
const ossimString value,
bool  readOnlyFlag = false 
)
virtual

Definition at line 82 of file ossimContainerProperty.cpp.

References addChild(), and ossimProperty::setReadOnlyFlag().

85 {
86  ossimProperty* prop = new ossimStringProperty(name, value);
87 
88  prop->setReadOnlyFlag(readOnlyFlag);
89  addChild(prop);
90 }
virtual void setReadOnlyFlag(bool flag)
virtual void addChild(ossimProperty *propery)

◆ asContainer() [1/2]

const ossimContainerProperty * ossimContainerProperty::asContainer ( ) const
virtual

Reimplemented from ossimProperty.

Definition at line 92 of file ossimContainerProperty.cpp.

93 {
94  return this;
95 }

◆ asContainer() [2/2]

ossimContainerProperty * ossimContainerProperty::asContainer ( )
virtual

Reimplemented from ossimProperty.

Definition at line 97 of file ossimContainerProperty.cpp.

98 {
99  return this;
100 }

◆ assign()

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

Reimplemented from ossimProperty.

Definition at line 36 of file ossimContainerProperty.cpp.

References ossimProperty::assign(), and copyList().

37 {
38  const ossimContainerProperty* rhsContainer = dynamic_cast<const ossimContainerProperty*>(&rhs);
40 
41  if(rhsContainer)
42  {
43  copyList(*rhsContainer);
44  }
45 
46  return *this;
47 }
virtual const ossimProperty & assign(const ossimProperty &rhs)
virtual void copyList(const ossimContainerProperty &rhs)

◆ copyList()

void ossimContainerProperty::copyList ( const ossimContainerProperty rhs)
protectedvirtual

Definition at line 49 of file ossimContainerProperty.cpp.

References deleteChildren(), and theChildPropertyList.

Referenced by assign(), and ossimContainerProperty().

50 {
52 
53  for(ossim_uint32 idx = 0; idx < rhs.theChildPropertyList.size();++idx)
54  {
55  if(rhs.theChildPropertyList[idx].valid())
56  {
57  theChildPropertyList.push_back((ossimProperty*)(rhs.theChildPropertyList[idx]->dup()));
58  }
59  else
60  {
61  theChildPropertyList.push_back((ossimProperty*)0);
62  }
63  }
64 }
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList
unsigned int ossim_uint32

◆ deleteChildren()

void ossimContainerProperty::deleteChildren ( )
virtual

Definition at line 141 of file ossimContainerProperty.cpp.

References theChildPropertyList.

Referenced by copyList(), and ~ossimContainerProperty().

142 {
143 // for(ossim_uint32 idx = 0; idx < theChildPropertyList.size(); ++idx)
144 // {
145 // if(theChildPropertyList[idx])
146 // {
147 // delete theChildPropertyList[idx];
148 // theChildPropertyList[idx] = (ossimProperty*)0;
149 // }
150 // }
151  theChildPropertyList.clear();
152 }
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList

◆ dup()

ossimObject * ossimContainerProperty::dup ( ) const
virtual

Reimplemented from ossimObject.

Definition at line 31 of file ossimContainerProperty.cpp.

References ossimContainerProperty().

32 {
33  return new ossimContainerProperty(*this);
34 }
ossimContainerProperty(const ossimString &name=ossimString(""))

◆ getNumberOfProperties()

ossim_uint32 ossimContainerProperty::getNumberOfProperties ( ) const
virtual

Definition at line 164 of file ossimContainerProperty.cpp.

References theChildPropertyList.

Referenced by ossimProperty::saveState().

165 {
166  return (ossim_uint32)theChildPropertyList.size();
167 }
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList
unsigned int ossim_uint32

◆ getProperty() [1/2]

ossimRefPtr< ossimProperty > ossimContainerProperty::getProperty ( const ossimString name,
bool  recurse = false 
)
virtual

Definition at line 102 of file ossimContainerProperty.cpp.

References ossimProperty::getName(), theChildPropertyList, and ossimRefPtr< T >::valid().

Referenced by ossimMapCompositionSource::setProperty().

104 {
105  ossim_uint32 idx = 0;
106  std::vector<ossimRefPtr<ossimContainerProperty> > containers;
107  if(name == getName())
108  {
109  return this;
110  }
111  for(idx = 0; idx < theChildPropertyList.size(); ++idx)
112  {
113  if(theChildPropertyList[idx].valid())
114  {
115  if(theChildPropertyList[idx]->getName() == name)
116  {
117  return theChildPropertyList[idx];
118  }
119  if(dynamic_cast<ossimContainerProperty*>(theChildPropertyList[idx].get())&&recurse)
120  {
121  containers.push_back(dynamic_cast<ossimContainerProperty*>(theChildPropertyList[idx].get()));
122  }
123  }
124  }
125 
126  if(containers.size())
127  {
128  for(idx = 0; idx < containers.size();++idx)
129  {
130  ossimRefPtr<ossimProperty> prop = containers[idx]->getProperty(name, recurse);
131  if(prop.valid())
132  {
133  return prop;
134  }
135  }
136  }
137 
138  return (ossimProperty*)0;
139 }
bool valid() const
Definition: ossimRefPtr.h:75
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList
unsigned int ossim_uint32
const ossimString & getName() const

◆ getProperty() [2/2]

ossimRefPtr< ossimProperty > ossimContainerProperty::getProperty ( ossim_uint32  idx)
virtual

Definition at line 169 of file ossimContainerProperty.cpp.

References theChildPropertyList.

170 {
171  if(idx < theChildPropertyList.size())
172  {
173  return theChildPropertyList[idx];
174  }
175 
176  return (ossimProperty*)0;
177 }
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList

◆ getPropertyList()

void ossimContainerProperty::getPropertyList ( std::vector< ossimRefPtr< ossimProperty > > &  children) const
virtual

Definition at line 179 of file ossimContainerProperty.cpp.

References theChildPropertyList.

Referenced by ossimInfo::getImageMetadata(), ossimNitf20Writer::setProperty(), and ossimNitfWriter::setProperty().

181 {
182  children = theChildPropertyList;
183 }
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList

◆ setReadOnlyFlag()

void ossimContainerProperty::setReadOnlyFlag ( bool  flag)
virtual

Reimplemented from ossimProperty.

Definition at line 202 of file ossimContainerProperty.cpp.

References ossimProperty::setReadOnlyFlag(), and theChildPropertyList.

203 {
205  ossim_uint32 idx = 0;
206  for(idx = 0; idx < theChildPropertyList.size(); ++idx)
207  {
208  theChildPropertyList[idx]->setReadOnlyFlag(flag);
209  }
210 }
virtual void setReadOnlyFlag(bool flag)
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList
unsigned int ossim_uint32

◆ setValue()

bool ossimContainerProperty::setValue ( const ossimString value)
virtual

Implements ossimProperty.

Definition at line 155 of file ossimContainerProperty.cpp.

156 {
157  return false;
158 }

◆ toXml()

ossimRefPtr< ossimXmlNode > ossimContainerProperty::toXml ( ) const
virtual

Reimplemented from ossimProperty.

Definition at line 185 of file ossimContainerProperty.cpp.

References ossimXmlNode::addChildNode(), ossimRefPtr< T >::get(), ossimProperty::getName(), ossimXmlNode::setTag(), and theChildPropertyList.

186 {
187  ossimXmlNode* result = new ossimXmlNode;
188 
189  result->setTag(getName());
190 
191  ossim_uint32 idx = 0;
192  for(idx = 0; idx < theChildPropertyList.size(); ++idx)
193  {
194  ossimRefPtr<ossimXmlNode> child = theChildPropertyList[idx]->toXml();
195 
196  result->addChildNode(child.get());
197  }
198 
199  return result;
200 }
void setTag(const ossimString &tag)
std::vector< ossimRefPtr< ossimProperty > > theChildPropertyList
unsigned int ossim_uint32
void addChildNode(ossimRefPtr< ossimXmlNode > node)
const ossimString & getName() const

◆ valueToString()

void ossimContainerProperty::valueToString ( ossimString valueResult) const
virtual

Implements ossimProperty.

Definition at line 160 of file ossimContainerProperty.cpp.

161 {
162 }

Friends And Related Function Documentation

◆ ossimProperty

friend class ossimProperty
friend

Definition at line 18 of file ossimContainerProperty.h.

Member Data Documentation

◆ theChildPropertyList

std::vector<ossimRefPtr<ossimProperty> > ossimContainerProperty::theChildPropertyList
protected

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