All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Static Public Attributes | Protected Member Functions
QGpCoreTools::ExpressionVariable Class Reference

#include <ExpressionAction.h>

Inheritance diagram for QGpCoreTools::ExpressionVariable:
QGpCoreTools::ExpressionAction QGpCoreTools::XMLClass

List of all members.

Public Member Functions

virtual bool addArgument (ExpressionAction *a)
virtual ExpressionActionclose (Type t)
 ExpressionVariable (QString name, ExpressionContext *c)
virtual bool isReadOnly () const
virtual ExpressionActionparent () const
virtual void replaceArgument (ExpressionAction *, ExpressionAction *)
virtual void setValue (const QVariant &val)
virtual QVariant value () const
virtual const QString & xml_tagName () const
 ~ExpressionVariable ()

Static Public Attributes

static const QString xmlExpressionVariableTag = "ExpressionVariable"

Protected Member Functions

virtual void xml_writeChildren (XML_WRITECHILDREN_ARGS) const
virtual void xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const

Constructor & Destructor Documentation

References QGpCoreTools::ExpressionContext::addVariable(), and TRACE.

{
  TRACE;
  _context=context;
  _varIndex=_context->addVariable(name, new ExpressionVariableStorage);
  _index=0;
  _open=false;
}
{delete _index;}

Member Function Documentation

If argument is already set, the new argument is set as the current and the old one is set as the argument of the new argument. This mechanism is designed for cases where an operator with a higher priority is encountered during parse.

Implements QGpCoreTools::ExpressionAction.

References QGpCoreTools::ExpressionAction::addArgument(), QGpCoreTools::ExpressionAction::setParent(), and TRACE.

{
  TRACE;
  if(!_index || a->addArgument(_index)) {
    a->setParent(this);
    _index=a;
    _open=true;
    return true;
  } else return false;
}

Reimplemented from QGpCoreTools::ExpressionAction.

References QGpCoreTools::ExpressionAction::_parent, QGpCoreTools::ExpressionAction::CloseSquareBracket, and TRACE.

{
  TRACE;
  if(t==CloseSquareBracket && _index && _open) {
    _open=false;
    return _parent;
  }
  else return ExpressionAction::close(t);
}
virtual ExpressionAction* QGpCoreTools::ExpressionVariable::parent ( ) const [inline, virtual]

Reimplemented from QGpCoreTools::ExpressionAction.

{if(_open) return 0; else return _parent;}

Implements QGpCoreTools::ExpressionAction.

References QGpCoreTools::ExpressionAction::setParent(), and TRACE.

{
  TRACE;
  ASSERT(_index==oldA);
  _index=newA;
  newA->setParent(this);
}
void QGpCoreTools::ExpressionVariable::setValue ( const QVariant &  val) [virtual]

Reimplemented from QGpCoreTools::ExpressionAction.

References QGpCoreTools::ExpressionStorage::setValue(), TRACE, QGpCoreTools::ExpressionAction::value(), and QGpCoreTools::ExpressionContext::variable().

{
  TRACE;
  if(_index)
    _context->variable(_varIndex)->setValue(_index->value().toString(), val);
  else
    _context->variable(_varIndex)->setValue(QString::null, val);
}
QVariant QGpCoreTools::ExpressionVariable::value ( ) const [virtual]

Implements QGpCoreTools::ExpressionAction.

References TRACE, QGpCoreTools::ExpressionStorage::value(), QGpCoreTools::ExpressionAction::value(), and QGpCoreTools::ExpressionContext::variable().

{
  TRACE;
  if(_index)
    return _context->variable(_varIndex)->value(_index->value().toString());
  else
    return _context->variable(_varIndex)->value(QString::null);
}
virtual const QString& QGpCoreTools::ExpressionVariable::xml_tagName ( ) const [inline, virtual]

Reimplemented from QGpCoreTools::XMLClass.

References TRACE, and QGpCoreTools::XMLClass::xml_save().

{
  TRACE;
  Q_UNUSED(context);
  if(_index) _index->xml_save(s, context);
}

Reimplemented from QGpCoreTools::XMLClass.

References TRACE, and QGpCoreTools::XMLClass::writeProperty().

{
  TRACE;
  Q_UNUSED(context);
  writeProperty(s,  "varIndex", _varIndex);
}

Member Data Documentation

const QString QGpCoreTools::ExpressionVariable::xmlExpressionVariableTag = "ExpressionVariable" [static]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines