Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

SequentialMessage Class Reference

#include <sequentialmessage.h>

Inheritance diagram for SequentialMessage:

Inheritance graph
[legend]
Collaboration diagram for SequentialMessage:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SequentialMessage (SrcPosition *position, Message *message, SimpleMessage *simpleMessage)
 SequentialMessage (const SequentialMessage &sequentialMessage)
virtual ~SequentialMessage ()
MessagegetMessage ()
SimpleMessagegetSimpleMessage ()
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Messagemessage
SimpleMessagesimpleMessage

Constructor & Destructor Documentation

SequentialMessage::SequentialMessage SrcPosition position,
Message message,
SimpleMessage simpleMessage
[inline]
 

Definition at line 14 of file sequentialmessage.h.

Referenced by clone().

00015                         : Message(position), message(message), simpleMessage(simpleMessage) {}

SequentialMessage::SequentialMessage const SequentialMessage &  sequentialMessage  )  [inline]
 

Definition at line 17 of file sequentialmessage.h.

References Ast::position.

00017                                                                               : Message(sequentialMessage.position) {
00018                         *(this) = sequentialMessage;
00019                 }

virtual SequentialMessage::~SequentialMessage  )  [inline, virtual]
 

Definition at line 21 of file sequentialmessage.h.

00021                                              {
00022                         delete this->message;
00023                         delete this->simpleMessage;
00024                 }


Member Function Documentation

virtual Ast& SequentialMessage::clone  )  const [inline, virtual]
 

Implements Ast.

Definition at line 41 of file sequentialmessage.h.

References SimpleMessage::clone(), and SequentialMessage().

00041                                            {
00042                         return *(new SequentialMessage(new SrcPosition(*(this->position)),
00043                                          this->message ? dynamic_cast<Message*>(&(this->message->clone())) : 0,
00044                                          this->simpleMessage ? dynamic_cast<SimpleMessage*>(&(this->simpleMessage->clone())) : 0));
00045                 }

Message* SequentialMessage::getMessage  )  [inline]
 

Definition at line 26 of file sequentialmessage.h.

Referenced by TypeCheckerVisitor::visitSequentialMessage(), and JavaCodeGeneratorVisitor::visitSequentialMessage().

00026                                       {
00027                         return this->message;
00028                 }

SimpleMessage* SequentialMessage::getSimpleMessage  )  [inline]
 

Definition at line 30 of file sequentialmessage.h.

Referenced by TypeCheckerVisitor::visitSequentialMessage(), and JavaCodeGeneratorVisitor::visitSequentialMessage().

00030                                                   {
00031                         return this->simpleMessage;
00032                 }

Ast & SequentialMessage::operator= const Ast ast  )  [virtual]
 

Reimplemented from Message.

Definition at line 5 of file sequentialmessage.cpp.

References SimpleMessage::clone(), Ast::clone(), message, Message::operator=(), and simpleMessage.

00005                                                   {
00006         const SequentialMessage& sequentialMessage = dynamic_cast<const SequentialMessage&>(ast);
00007 
00008         Message::operator=(ast);
00009         this->message = sequentialMessage.message ? dynamic_cast<Message*>(&(sequentialMessage.message->clone())) : 0;
00010         this->simpleMessage = sequentialMessage.simpleMessage ? dynamic_cast<SimpleMessage*>(&(sequentialMessage.simpleMessage->clone())) : 0;
00011 
00012         return *(this);
00013 }

bool SequentialMessage::operator== const Ast ast  )  const [virtual]
 

Reimplemented from Message.

Definition at line 15 of file sequentialmessage.cpp.

References message, Message::operator==(), and simpleMessage.

00015                                                          {
00016         bool result = false;
00017         const SequentialMessage& sequentialMessage = dynamic_cast<const SequentialMessage&>(ast);
00018 
00019         if (typeid(ast) != typeid(SequentialMessage))
00020                 return false;
00021 
00022         if (this->message && this->simpleMessage)
00023                 result = (*(this->message) == *(sequentialMessage.message) &&
00024                                   *(this->simpleMessage) == *(sequentialMessage.simpleMessage));
00025 
00026         return result && Message::operator==(ast);
00027 }

virtual VisitorReturn* SequentialMessage::visit Visitor visitor  )  [inline, virtual]
 

Implements Ast.

Definition at line 37 of file sequentialmessage.h.

References Visitor::visitSequentialMessage().

00037                                                                {
00038                         return visitor.visitSequentialMessage(this);
00039                 }


Member Data Documentation

Message* SequentialMessage::message [private]
 

Definition at line 9 of file sequentialmessage.h.

Referenced by operator=(), and operator==().

SimpleMessage* SequentialMessage::simpleMessage [private]
 

Definition at line 10 of file sequentialmessage.h.

Referenced by operator=(), and operator==().


The documentation for this class was generated from the following files:
Generated on Mon Dec 1 17:39:23 2003 for Protomake by doxygen1.3