yast2-core
Public Member Functions | Private Member Functions | Private Attributes

YSSwitch Class Reference

#include <YStatement.h>

Inheritance diagram for YSSwitch:
YStatement YCode Rep

List of all members.

Public Member Functions

 YSSwitch (YCodePtr condition)
 YSSwitch (bytecodeistream &str)
 ~YSSwitch ()
virtual ykind kind () const
string name () const
string toString () const
std::ostream & toStream (std::ostream &str) const
std::ostream & toXml (std::ostream &str, int indent) const
YCPValue evaluate (bool cse=false)
constTypePtr type () const
constTypePtr conditionType () const
bool setCase (YCPValue value)
bool setDefaultCase ()
void setBlock (YBlockPtr block)

Private Member Functions

 REP_BODY (YSSwitch)

Private Attributes

YCodePtr m_condition
YBlockPtr m_block
int m_defaultcase
map< YCPValue, int, ycp_lessm_cases

Detailed Description

switch


Constructor & Destructor Documentation

YSSwitch::YSSwitch ( YCodePtr  condition)

Switch

YSSwitch::YSSwitch ( bytecodeistream str)
YSSwitch::~YSSwitch ( )

Member Function Documentation

constTypePtr YSSwitch::conditionType ( ) const [inline]

References m_condition.

YCPValue YSSwitch::evaluate ( bool  cse = false) [virtual]

Execute YCP code to get the resulting YCPValue. Every inherited class of YCode should reimplement this method.

Returns:
YCPValue after executing the code
Parameters:
cseshould the evaluation be done for parse time evaluation (i.e. constant subexpression elimination)

Reimplemented from YStatement.

References YCPElement::isNull(), m_block, m_cases, m_condition, m_defaultcase, y2debug, and ycperror.

virtual ykind YSSwitch::kind ( ) const [inline, virtual]

Kind of this YCode. This method must be reimplemented in the inherited classes.

Returns:
the YCode kind

Implements YCode.

References YCode::ysSwitch.

string YSSwitch::name ( ) const
YSSwitch::REP_BODY ( YSSwitch  ) [private]
void YSSwitch::setBlock ( YBlockPtr  block)

References m_block.

bool YSSwitch::setCase ( YCPValue  value)

References m_block, and m_cases.

bool YSSwitch::setDefaultCase ( )

References m_block, and m_defaultcase.

std::ostream & YSSwitch::toStream ( std::ostream &  str) const [virtual]

Write YCP code to a byte stream (bytecode implementation). Every class inheriting from YCode must reimplement this method.

Parameters:
strbyte stream to store into
Returns:
byte stream for chaining writing bytecode (str)

Reimplemented from YStatement.

References m_block, m_cases, m_condition, m_defaultcase, Bytecode::writeInt32(), and Bytecode::writeValue().

string YSSwitch::toString ( void  ) const [virtual]

Return ASCII represtation of this YCP code.

Returns:
ASCII string representation

Reimplemented from YStatement.

References m_block, m_cases, m_condition, and m_defaultcase.

std::ostream & YSSwitch::toXml ( std::ostream &  str,
int  indent 
) const [virtual]

Write YCP code as XML representation. Every class inheriting from YCode must reimplement this method.

Parameters:
strstring stream to store into
indendindentation level for pretty print
Returns:
string stream for chaining writing XML (str)

Reimplemented from YStatement.

References m_block, m_cases, m_condition, m_defaultcase, and Xmlcode::spaces().

constTypePtr YSSwitch::type ( ) const [inline, virtual]

Return type of this YCP code (interesting mostly for function calls).

Returns:
type of the value to be returned after calling evaluate

Reimplemented from YStatement.

References Type::Void.


Member Data Documentation

YBlockPtr YSSwitch::m_block [private]
map<YCPValue, int, ycp_less> YSSwitch::m_cases [private]
YCodePtr YSSwitch::m_condition [private]
int YSSwitch::m_defaultcase [private]

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

Generated on a sunny day for yast2-core by doxygen 1.7.3