Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method Read (LibOpt_Task task, JSON json) as stream[JSON] 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    result := emit( json ); 
 | 
     
 | 
    identifier := [String] this.InternalIdentifier(); 
 | 
    type := ''; 
 | 
    if( LibOpt_Message::TryGetType( json, type ) 
 | 
        and type.StartsWith( identifier ) ) 
 | 
    { 
 | 
      message_type := type.SubString( identifier.Length(), type.Length() - identifier.Length() ); 
 | 
      message := select( this, DistributedMessage, dm, dm.Identifier() = message_type ); 
 | 
      if( not isnull( message ) ) 
 | 
      { 
 | 
        unpacked := LibOpt_Message::Unpack( json, type ); 
 | 
        message.Read( task, unpacked ); 
 | 
        result := stream[JSON]::Success(); 
 | 
      } 
 | 
    } 
 | 
     
 | 
    return result; 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |