Quintiq file version 2.0 
 | 
#parent: #root 
 | 
MethodOverride DoExecuteReactive (Algorithm algorithm, LibOpt_Task task) as stream[JSON] 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    if( this.AutoRegisterTypeDescriptors() ) 
 | 
    { 
 | 
      program := algorithm.astype( MathematicalProgram ); 
 | 
      // Register type descriptors if the program hasn't been executed before and the suboptimizer is configured to do so. 
 | 
      if( program.ExecutionCounter() = 0 ) 
 | 
      { 
 | 
        this.RegisterTypeDescriptors( program ); 
 | 
      } 
 | 
      program.GenerateNames(); 
 | 
    } 
 | 
     
 | 
    execute := algorithm->LibOpt_SuboptimizerMP::ExecuteAlgorithm(); 
 | 
    return execute->|this->DoHandleResultCall( algorithm, task ); 
 | 
  *] 
 | 
} 
 |