OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimObject.cpp
Go to the documentation of this file.
1 //*******************************************************************
2 // Copyright (C) 2000 ImageLinks Inc.
3 //
4 // License: LGPL
5 //
6 // See LICENSE.txt file in the top level directory for more details.
7 //
8 // Author: Garrett Potts
9 //
10 //*************************************************************************
11 // $Id: ossimObject.cpp 20070 2011-09-07 18:48:35Z dburken $
12 #include <ossim/base/ossimObject.h>
19 
20 RTTI_DEF(ossimObject, "ossimObject")
21 
23 {}
24 
26 {
27 }
28 
30 {
31  ossimObject* result = NULL;
32  ossimKeywordlist kwl;
33 
34  saveState(kwl);
35 
37 
38  if(!result)
39  {
41  << "dup() not implemented for object = "
42  << getClassName() << ". Please implement!\n";
43  }
44 
45  return result;
46 }
47 
49 {
50  return getClassName();
51 }
52 
54 {
55  return getClassName();
56 }
57 
59 {
60  return getLongName();
61 }
62 
63 
65 {
66  return TYPE_NAME(this);
67 }
68 
70 {
71  return TYPE_INFO(this);
72 }
73 
75 {
76  if(obj)
77  {
78  return obj->getType().can_cast(this->getType());
79  }
80 
81  return false;
82 }
83 
84 bool ossimObject::canCastTo(const ossimString& parentClassName)const
85 {
86  return (getType().find_baseclass(parentClassName.c_str()) !=
87  getType().null_type());
88 }
89 
90 bool ossimObject::canCastTo(const RTTItypeid& id)const
91 {
92  return id.can_cast(this->getType());
93 }
94 
96  const char* prefix)const
97 {
98  kwl.add(prefix,
100  getClassName(),
101  true);
102 
103  return true;
104 }
105 
106 bool ossimObject::isEqualTo(const ossimObject& obj, ossimCompareType /* compareType */)const
107 {
108  return (getClassName() == obj.getClassName());
109 }
110 
112 {
113  if(!visitor.stopTraversal()&&!visitor.hasVisited(this))
114  {
115  visitor.visit(this);
116  }
117 }
118 
119 bool ossimObject::loadState(const ossimKeywordlist&, const char*)
120 {
121  return true;
122 }
123 
125 {
126  return out;
127 }
128 
130 {
131  return obj.print(out);
132 }
virtual void visit(ossimObject *obj)
#define TYPE_NAME(p)
Definition: ossimRtti.h:326
virtual bool isEqualTo(const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
Represents serializable keyword/value map.
virtual void accept(ossimVisitor &visitor)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Definition: ossimObject.cpp:95
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
static ossimObjectFactoryRegistry * instance()
virtual ossimString getClassName() const
Definition: ossimObject.cpp:64
ossimCompareType
int can_cast(RTTItypeid) const
Definition: ossimRtti.h:259
virtual ossimString getShortName() const
Definition: ossimObject.cpp:48
static const char * TYPE_KW
virtual RTTItypeid getType() const
Definition: ossimObject.cpp:69
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
virtual std::ostream & print(std::ostream &out) const
Generic print method.
bool hasVisited(ossimObject *obj) const
#define TYPE_INFO(p)
Definition: ossimRtti.h:320
virtual ossimString getLongName() const
Definition: ossimObject.cpp:53
virtual ossimString getDescription() const
Definition: ossimObject.cpp:58
virtual ossimObject * createObject(const ossimString &name) const
virtual bool canCastTo(ossimObject *obj) const
Definition: ossimObject.cpp:74
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
virtual ossimObject * dup() const
Definition: ossimObject.cpp:29
virtual ~ossimObject()
Definition: ossimObject.cpp:25
bool stopTraversal() const
static RTTItypeid null_type()
Definition: ossimRtti.h:240
#define RTTI_DEF(cls, name)
Definition: ossimRtti.h:477
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
std::ostream & operator<<(std::ostream &out, const ossimObject &obj)