#include "Ereignis.h"
#include "Trigger.h"

Ereignis::Ereignis( EreignisTyp typ )
{
    this->typ = typ;
    ref = 1;
}

Ereignis::~Ereignis()
{}

EreignisTyp Ereignis::getTyp() const
{
    return typ;
}

void Ereignis::addParameter( const char *name, Variable *var )
{
    params.add( new VarPointer( name, var ) );
}

Variable *Ereignis::getParameter( const char *name ) const
{
    for( auto v = params.getIterator(); v; v++ )
    {
        if( v->getName().istGleich( name ) )
            return v->getVariable();
    }
    return 0;
}

Variable *Ereignis::zParameter( const char *name ) const
{
    for( auto v = params.getIterator(); v; v++ )
    {
        if( v->getName().istGleich( name ) )
            return v->zVariable();
    }
    return 0;
}

Ereignis *Ereignis::getThis()
{
    ref++;
    return this;
}

Ereignis *Ereignis::release()
{
    if( !--ref )
        delete this;
    return 0;
}