Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CriteriaNot Class Reference

#include <criteria.h>

Inheritance diagram for CriteriaNot:
CriteriaParent CriteriaNode

Public Member Functions

virtual bool isDestination (unsigned system) const
 
virtual std::string getDescription () const
 
virtual std::string getText () const
 
virtual CriteriaNodeunhook ()
 
virtual CriteriaNodeunhook (CriteriaNode *child)
 
virtual std::vector
< CriteriaNode * > 
getChildren () const
 
virtual CriteriaNodeclone () const
 
 CriteriaNot (CriteriaNode *child)
 
virtual ~CriteriaNot ()
 
virtual void replaceChild (CriteriaNode *child, CriteriaNode *replacement)
 
- Public Member Functions inherited from CriteriaParent
 CriteriaParent (CriteriaParent *parent=NULL)
 
virtual ~CriteriaParent ()
 
- Public Member Functions inherited from CriteriaNode
 CriteriaNode (CriteriaParent *parent=NULL)
 
virtual ~CriteriaNode ()
 
void setParent (CriteriaParent *parent)
 
CriteriaParentgetParent ()
 

Protected Attributes

CriteriaNodem_child
 

Detailed Description

Definition at line 109 of file criteria.h.

Constructor & Destructor Documentation

CriteriaNot::CriteriaNot ( CriteriaNode child)

Definition at line 178 of file criteria.cpp.

References CriteriaNode::getParent(), m_child, CriteriaParent::replaceChild(), and CriteriaNode::setParent().

Referenced by clone().

178  :
180 {
181  assert( child != NULL );
182  setParent( child->getParent() );
183  m_child = child;
184  if ( child->getParent() )
185  child->getParent()->replaceChild( child, this );
186  child->setParent( this );
187 }
CriteriaNot::~CriteriaNot ( )
virtual

Definition at line 189 of file criteria.cpp.

References m_child.

190 {
191  if (m_child)
192  delete m_child;
193 }

Member Function Documentation

CriteriaNode * CriteriaNot::clone ( ) const
virtual

Implements CriteriaParent.

Definition at line 170 of file criteria.cpp.

References CriteriaNode::clone(), CriteriaNot(), and m_child.

171 {
172  assert( m_child );
173  CriteriaNode *cloned_child = m_child->clone();
174  CriteriaNot *temp = new CriteriaNot( cloned_child );
175  return temp;
176 }
vector< CriteriaNode * > CriteriaNot::getChildren ( ) const
virtual

Implements CriteriaNode.

Definition at line 162 of file criteria.cpp.

References m_child.

163 {
164  vector< CriteriaNode* >temp;
165  if (m_child)
166  temp.push_back( m_child );
167  return temp;
168 }
string CriteriaNot::getDescription ( ) const
virtual

Implements CriteriaNode.

Definition at line 128 of file criteria.cpp.

References CriteriaNode::getDescription(), and m_child.

129 {
130  assert( m_child != NULL );
131 
132  string temp = "NOT(";
133  temp += m_child->getDescription();
134  temp += ")";
135  return temp;
136 }
string CriteriaNot::getText ( ) const
virtual

Implements CriteriaNode.

Definition at line 138 of file criteria.cpp.

139 {
140  return "NOT";
141 }
bool CriteriaNot::isDestination ( unsigned  system) const
virtual

Implements CriteriaNode.

Definition at line 121 of file criteria.cpp.

References CriteriaNode::isDestination(), and m_child.

122 {
123  assert( m_child != NULL );
124 
125  return !( m_child->isDestination( system ) );
126 }
void CriteriaNot::replaceChild ( CriteriaNode child,
CriteriaNode replacement 
)
virtual

Implements CriteriaParent.

Definition at line 143 of file criteria.cpp.

References m_child.

144 {
145  assert( child == m_child );
146  m_child = replacement;
147 }
CriteriaNode * CriteriaNot::unhook ( )
virtual

Implements CriteriaNode.

Definition at line 149 of file criteria.cpp.

References CriteriaNode::getParent(), m_child, CriteriaParent::replaceChild(), and CriteriaNode::setParent().

150 {
152  getParent()->replaceChild( this, m_child );
153  m_child = NULL;
154  return this;
155 }
CriteriaNode * CriteriaNot::unhook ( CriteriaNode child)
virtual

Implements CriteriaParent.

Definition at line 157 of file criteria.cpp.

References CriteriaNode::getParent(), and CriteriaParent::unhook().

158 {
159  return getParent()->unhook( this );
160 }

Member Data Documentation

CriteriaNode* CriteriaNot::m_child
protected

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