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

SimpleMessage Class Reference

#include <simplemessage.h>

Inheritance diagram for SimpleMessage:

Inheritance graph
[legend]
Collaboration diagram for SimpleMessage:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SimpleMessage (SrcPosition *position, Identifier *identifier, FieldDeclaration *fieldDeclaration, Identifier *handlerIn, Identifier *handlerOut, bool external)
 SimpleMessage (const SimpleMessage &simpleMessage)
virtual ~SimpleMessage ()
IdentifiergetIdentifier ()
FieldDeclarationgetFieldDeclaration ()
IdentifiergetHandlerIn ()
IdentifiergetHandlerOut ()
bool isExternal () const
virtual Astoperator= (const Ast &ast)
virtual bool operator== (const Ast &ast) const
virtual VisitorReturnvisit (Visitor &visitor)
virtual Astclone () const

Private Attributes

Identifieridentifier
FieldDeclarationfieldDeclaration
IdentifierhandlerIn
IdentifierhandlerOut
bool external

Constructor & Destructor Documentation

SimpleMessage::SimpleMessage SrcPosition position,
Identifier identifier,
FieldDeclaration fieldDeclaration,
Identifier handlerIn,
Identifier handlerOut,
bool  external
[inline]
 

Definition at line 17 of file simplemessage.h.

Referenced by clone().

00019                         : Message(position), identifier(identifier), fieldDeclaration(fieldDeclaration), 
00020                           handlerIn(handlerIn), handlerOut(handlerOut), external(external) {}

SimpleMessage::SimpleMessage const SimpleMessage &  simpleMessage  )  [inline]
 

Definition at line 22 of file simplemessage.h.

References Ast::position.

00022                                                                   : Message(simpleMessage.position) {
00023                         *(this) = simpleMessage;
00024                 }

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

Definition at line 26 of file simplemessage.h.

00026                                          {
00027                         delete this->identifier;
00028                         delete this->fieldDeclaration;
00029                         delete this->handlerIn;
00030                         delete this->handlerOut;
00031                 }


Member Function Documentation

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

Implements Ast.

Definition at line 60 of file simplemessage.h.

References Identifier::clone(), Ast::clone(), and SimpleMessage().

Referenced by SequentialMessage::clone(), and SequentialMessage::operator=().

00060                                            {
00061                         return *(new SimpleMessage(new SrcPosition(*(this->position)),
00062                                          this->identifier ? dynamic_cast<Identifier*>(&(this->identifier->clone())) : 0,
00063                                          this->fieldDeclaration ? dynamic_cast<FieldDeclaration*>(&(this->fieldDeclaration->clone())) : 0,
00064                                          this->handlerIn ? dynamic_cast<Identifier*>(&(this->handlerIn->clone())) : 0,
00065                                          this->handlerOut ? dynamic_cast<Identifier*>(&(this->handlerOut->clone())) : 0,
00066                                          this->external));
00067                 }

FieldDeclaration* SimpleMessage::getFieldDeclaration  )  [inline]
 

Definition at line 37 of file simplemessage.h.

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

00037                                                         {
00038                         return this->fieldDeclaration;
00039                 }

Identifier* SimpleMessage::getHandlerIn  )  [inline]
 

Definition at line 41 of file simplemessage.h.

Referenced by JavaCodeGeneratorVisitor::visitSimpleMessage().

00041                                            {
00042                         return this->handlerIn;
00043                 }

Identifier* SimpleMessage::getHandlerOut  )  [inline]
 

Definition at line 45 of file simplemessage.h.

Referenced by JavaCodeGeneratorVisitor::visitSimpleMessage().

00045                                             {
00046                         return this->handlerOut;
00047                 }

Identifier* SimpleMessage::getIdentifier  )  [inline]
 

Definition at line 33 of file simplemessage.h.

Referenced by TypeCheckerVisitor::visitFieldType(), TypeCheckerVisitor::visitSimpleFieldDeclaration(), TypeCheckerVisitor::visitSimpleMessage(), and JavaCodeGeneratorVisitor::visitSimpleMessage().

00033                                             {
00034                         return this->identifier;
00035                 }

bool SimpleMessage::isExternal  )  const [inline]
 

Definition at line 49 of file simplemessage.h.

00049                                         {
00050                         return this->external;
00051                 }

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

Reimplemented from Message.

Definition at line 5 of file simplemessage.cpp.

References Ast::clone(), Identifier::clone(), external, fieldDeclaration, handlerIn, handlerOut, identifier, and Message::operator=().

00005                                               {
00006         const SimpleMessage& simpleMessage = dynamic_cast<const SimpleMessage&>(ast);
00007 
00008         Message::operator=(ast);
00009         this->identifier = this->identifier ? dynamic_cast<Identifier*>(&(simpleMessage.identifier->clone())) : 0;
00010         this->fieldDeclaration = this->fieldDeclaration ? dynamic_cast<FieldDeclaration*>(&(simpleMessage.fieldDeclaration->clone())) : 0;
00011         this->handlerIn = this->handlerIn ? dynamic_cast<Identifier*>(&(simpleMessage.handlerIn->clone())) : 0;
00012         this->handlerOut = this->handlerOut ? dynamic_cast<Identifier*>(&(simpleMessage.handlerOut->clone())) : 0;
00013         this->external = simpleMessage.external;
00014 
00015         return *(this);
00016 }

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

Reimplemented from Message.

Definition at line 18 of file simplemessage.cpp.

References external, fieldDeclaration, handlerIn, handlerOut, identifier, and Message::operator==().

00018                                                      {
00019         bool result = false;
00020         const SimpleMessage& simpleMessage = dynamic_cast<const SimpleMessage&>(ast);
00021 
00022         if (typeid(ast) != typeid(SimpleMessage))
00023                 return false;
00024 
00025         if (this->identifier && this->fieldDeclaration && this->handlerIn && this->handlerOut)
00026                 result = (*(this->identifier) == *(simpleMessage.identifier) &&
00027                                    *(this->fieldDeclaration) == *(simpleMessage.fieldDeclaration)) &&
00028                                    *(this->handlerIn) == *(simpleMessage.handlerIn) && 
00029                                    *(this->handlerOut) == *(simpleMessage.handlerOut) && 
00030                                    this->external == simpleMessage.external;
00031 
00032         return result && Message::operator==(ast);
00033 }

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

Implements Ast.

Definition at line 56 of file simplemessage.h.

References Visitor::visitSimpleMessage().

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

00056                                                                {
00057                         return visitor.visitSimpleMessage(this);
00058                 }


Member Data Documentation

bool SimpleMessage::external [private]
 

Definition at line 14 of file simplemessage.h.

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

FieldDeclaration* SimpleMessage::fieldDeclaration [private]
 

Definition at line 11 of file simplemessage.h.

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

Identifier* SimpleMessage::handlerIn [private]
 

Definition at line 12 of file simplemessage.h.

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

Identifier* SimpleMessage::handlerOut [private]
 

Definition at line 13 of file simplemessage.h.

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

Identifier* SimpleMessage::identifier [private]
 

Definition at line 10 of file simplemessage.h.

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


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