Compiler: added 'initial_state_path'

SVN:trunk[2209]
This commit is contained in:
Romain Quetiez
2012-09-25 12:08:50 +00:00
parent 2da369431c
commit dc4bfc6b30

View File

@@ -739,12 +739,23 @@ EOF;
{
$sState = $oState->getAttribute('id');
$oInitialStatePath = $oState->GetOptionalElement('initial_state_path');
if ($oInitialStatePath)
{
$aInitialStatePath = array();
foreach ($oInitialStatePath->getElementsByTagName('state_ref') as $oIntermediateState)
{
$aInitialStatePath[] = "'".$oIntermediateState->GetText()."'";
}
$sInitialStatePath = 'Array('.implode(', ', $aInitialStatePath).')';
}
$sLifecycle .= " MetaModel::Init_DefineState(\n";
$sLifecycle .= " \"".$sState."\",\n";
$sLifecycle .= " array(\n";
$sLifecycle .= " \"attribute_inherit\" => '',\n";
$sLifecycle .= " \"attribute_list\" => array(\n";
$oFlags = $oState->GetUniqueElement('flags');
foreach ($oFlags->getElementsByTagName('attribute') as $oAttributeNode)
{
@@ -755,8 +766,12 @@ EOF;
$sLifecycle .= " '$sAttCode' => $sFlags,\n";
}
}
$sLifecycle .= " ),\n";
if (isset($sInitialStatePath))
{
$sLifecycle .= " \"initial_state_path\" => $sInitialStatePath,\n";
}
$sLifecycle .= " )\n";
$sLifecycle .= " );\n";