Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method HandleInfeasible (MathematicalProgram program, LibOpt_Task task) as LibOpt_Scope 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    Handle the infeasible result of the `MathematicalProgram` here. 
 | 
    When overriding this, the provided rollback KPI will not get worse. 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    // To be overridden. Handle the result of the mathematical program here. 
 | 
    // When overriding this, the rollback KPI will not get worse. 
 | 
     
 | 
    message := ''; 
 | 
    remark := program.Remark(); 
 | 
     
 | 
    if( remark = LibOpt_SuboptimizerMP::MPRemark_Infeasible() ) 
 | 
    { 
 | 
      message := Translations::LibOpt_SuboptimizerMP_Infeasible( this.Name() ); 
 | 
    } 
 | 
    else if( remark = LibOpt_SuboptimizerMP::MPRemark_TimeLimitExceeded() ) 
 | 
    { 
 | 
      message := Translations::LibOpt_SuboptimizerMP_InfeasibleDueToTime( this.Name() ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      message := Translations::LibOpt_SuboptimizerMP_InfeasibleRemark( this.Name(), remark ); 
 | 
    } 
 | 
     
 | 
    error( message ); 
 | 
     
 | 
    return task.Scope(); 
 | 
  *] 
 | 
} 
 |