user
 
History(1)
 
LittlePig(1)
 
LittlePig(2)
 
LittlePig(3)
 
House(1)
 
House(2)
 
House(3)
 
Wolf(1)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5. buildHouse( $strType )
  • $strType string 'Straw'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7. setType( $strType )
  • $strType string 'Straw'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8. setType( $strType )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9. setPig( $objPig )
  • $objPig object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10. setPig( $objPig )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11. buildHouse( $strType )
  • return object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12. buildHouse( $strType )
  • $strType string 'Stick'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14. setType( $strType )
  • $strType string 'Stick'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15. setType( $strType )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16. setPig( $objPig )
  • $objPig object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17. setPig( $objPig )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18. buildHouse( $strType )
  • return object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19. buildHouse( $strType )
  • $strType string 'Brick'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21. setType( $strType )
  • $strType string 'Brick'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22. setType( $strType )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23. setPig( $objPig )
  • $objPig object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24. setPig( $objPig )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
25. buildHouse( $strType )
  • return object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28. getHouse( )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29. blowIt( $objHouse )
  • $objHouse object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30. getBlowBy( $objWolf )
  • $objWolf object Wolf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32. getType( )
  • return string 'Straw'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34. colapse( )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36. isColapsed( )
  • return boolean true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37. getBlowBy( $objWolf )
  • return boolean true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39. getPig( )
  • return object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43. getHouse( )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44. blowIt( $objHouse )
  • $objHouse object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45. getBlowBy( $objWolf )
  • $objWolf object Wolf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47. getType( )
  • return string 'Stick'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49. colapse( )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51. isColapsed( )
  • return boolean true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52. getBlowBy( $objWolf )
  • return boolean true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54. getPig( )
  • return object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58. getHouse( )
  • return object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59. blowIt( $objHouse )
  • $objHouse object House
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60. getBlowBy( $objWolf )
  • $objWolf object Wolf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62. getType( )
  • return string 'Brick'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64. getPig( )
  • return object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
65. wakeUpBy( $objWolf )
  • $objWolf object Wolf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68. say( $strText )
  • $strText string 'i am happy ever after!'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69. say( $strText )
  • return object LittlePig
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  1. LittlePig(1) receive from House(1)->setType( $strType )
  2. return
    House::__set_state(array(
       
    'strType' => 'Straw',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  3. LittlePig(1) call House(1)->setPig( $objPig )
  4. $objPig
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Straw',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => true,
      )),
    ))
  5. LittlePig(1) receive from House(1)->setPig( $objPig )
  6. return
    House::__set_state(array(
       
    'strType' => 'Straw',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  7. History(1) receive from LittlePig(1)->buildHouse( $strType )
  8. return
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Straw',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => true,
      )),
    ))
  9. LittlePig(2) receive from House(2)->setType( $strType )
  10. return
    House::__set_state(array(
       
    'strType' => 'Stick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  11. LittlePig(2) call House(2)->setPig( $objPig )
  12. $objPig
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Stick',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => true,
      )),
    ))
  13. LittlePig(2) receive from House(2)->setPig( $objPig )
  14. return
    House::__set_state(array(
       
    'strType' => 'Stick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  15. History(1) receive from LittlePig(2)->buildHouse( $strType )
  16. return
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Stick',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => true,
      )),
    ))
  17. LittlePig(3) receive from House(3)->setType( $strType )
  18. return
    House::__set_state(array(
       
    'strType' => 'Brick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => NULL,
    ))
  19. LittlePig(3) call House(3)->setPig( $objPig )
  20. $objPig
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Brick',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => NULL,
      )),
    ))
  21. LittlePig(3) receive from House(3)->setPig( $objPig )
  22. return
    House::__set_state(array(
       
    'strType' => 'Brick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => NULL,
    ))
  23. History(1) receive from LittlePig(3)->buildHouse( $strType )
  24. return
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Brick',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => NULL,
      )),
    ))
  25. History(1) receive from LittlePig(1)->getHouse( )
  26. return
    House::__set_state(array(
       
    'strType' => 'Straw',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  27. History(1) call Wolf(1)->blowIt( $objHouse )
  28. $objHouse
    House::__set_state(array(
       
    'strType' => 'Straw',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  29. House(1) receive from House(1)->colapse( )
  30. return
    House::__set_state(array(
       
    'strType' => 'Straw',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  31. Wolf(1) receive from House(1)->getPig( )
  32. return
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Straw',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => true,
      )),
    ))
  33. History(1) receive from LittlePig(2)->getHouse( )
  34. return
    House::__set_state(array(
       
    'strType' => 'Stick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  35. History(1) call Wolf(1)->blowIt( $objHouse )
  36. $objHouse
    House::__set_state(array(
       
    'strType' => 'Stick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  37. House(2) receive from House(2)->colapse( )
  38. return
    House::__set_state(array(
       
    'strType' => 'Stick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => true,
    ))
  39. Wolf(1) receive from House(2)->getPig( )
  40. return
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Stick',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => true,
      )),
    ))
  41. History(1) receive from LittlePig(3)->getHouse( )
  42. return
    House::__set_state(array(
       
    'strType' => 'Brick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => NULL,
    ))
  43. History(1) call Wolf(1)->blowIt( $objHouse )
  44. $objHouse
    House::__set_state(array(
       
    'strType' => 'Brick',
       
    'objPig' => 
      
    LittlePig::__set_state(array(
         
    'strName' => NULL,
         
    'objHouse' => '*recursive*',
      )),
       
    'booIsColapsed' => NULL,
    ))
  45. House(3) receive from House(3)->getPig( )
  46. return
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Brick',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => NULL,
      )),
    ))
  47. LittlePig(3) receive from LittlePig(3)->say( $strText )
  48. return
    LittlePig::__set_state(array(
       
    'strName' => NULL,
       
    'objHouse' => 
      
    House::__set_state(array(
         
    'strType' => 'Brick',
         
    'objPig' => '*recursive*',
         
    'booIsColapsed' => NULL,
      )),
    ))