\begin{vdm_al}
--
-- THIS FILE IS AUTOMATICALLY GENERATED!!
--
-- Generated at 10-Nov-08 by the UML-VDM++ Link
--
class 縲悟宛蠕。繝槭す繝ウ縲�

types
  public 縲瑚オー陦檎憾諷九€� = <襍ー陦御クュ> | <蛛懈ュ「荳ュ>;

instance variables
  private i襍ー陦檎憾諷� : 縲瑚オー陦檎憾諷九€�;
  private i鬧�虚蛻カ蠕。 : 縲碁ァ�虚蛻カ蠕。縲�;
  private i繝懊ち繝ウ蛻カ蠕。 : 縲後�繧ソ繝ウ蛻カ蠕。縲�;
  private i繝ゥ繧、繝ウ蛻カ蠕。 : 縲後Λ繧、繝ウ逶」隕門宛蠕。縲�;

operations
  public 縲悟宛蠕。繝槭す繝ウ縲� : () ==> 縲悟宛蠕。繝槭す繝ウ縲�
  縲悟宛蠕。繝槭す繝ウ縲�() ==
  (
    i襍ー陦檎憾諷� := <蛛懈ュ「荳ュ>;
    
    i鬧�虚蛻カ蠕。 := new 縲碁ァ�虚蛻カ蠕。縲�();
    i繝懊ち繝ウ蛻カ蠕。 := new 縲後�繧ソ繝ウ蛻カ蠕。縲�();
    i繝ゥ繧、繝ウ蛻カ蠕。 := new 縲後Λ繧、繝ウ逶」隕門宛蠕。縲�();
    
    return self;
  );
  
  public 蛛懈ュ「縺吶k : () ==> ()
  蛛懈ュ「縺吶k() ==
  (
    i鬧�虚蛻カ蠕。.蛛懈ュ「縺吶k();
    i襍ー陦檎憾諷� := <蛛懈ュ「荳ュ>;
  )
    post i襍ー陦檎憾諷� = <蛛懈ュ「荳ュ>;

  public 襍ー陦後☆繧� : () ==> ()
  襍ー陦後☆繧�() ==
  (
    cases i繝ゥ繧、繝ウ蛻カ蠕。.繝ゥ繧、繝ウ迥カ諷九r蛻、螳壹☆繧�():
      <鮟�> -> 蜿ウ繧ソ繝シ繝ウ縺吶k(),
      <逋ス> -> 蟾ヲ繧ソ繝シ繝ウ縺吶k(),
      others -> skip
    end;
    
    i襍ー陦檎憾諷� := <襍ー陦御クュ>;
  )
    pre i繝懊ち繝ウ蛻カ蠕。.繝懊ち繝ウ迥カ諷九r蠕励k() = <ON>
    post i襍ー陦檎憾諷� = <襍ー陦御クュ>;

  public 蜿ウ繧ソ繝シ繝ウ縺吶k : () ==> ()
  蜿ウ繧ソ繝シ繝ウ縺吶k() ==
    i鬧�虚蛻カ蠕。.蜿ウ繧ソ繝シ繝ウ縺吶k()
    pre i繝ゥ繧、繝ウ蛻カ蠕。.繝ゥ繧、繝ウ迥カ諷九r蛻、螳壹☆繧�() = <鮟�>
    post i鬧�虚蛻カ蠕。.鬧�虚迥カ諷九r蠕励k() = <蜿ウ繧ソ繝シ繝ウ荳ュ>;

  public 蟾ヲ繧ソ繝シ繝ウ縺吶k : () ==> ()
  蟾ヲ繧ソ繝シ繝ウ縺吶k() ==
    i鬧�虚蛻カ蠕。.蟾ヲ繧ソ繝シ繝ウ縺吶k()
    pre i繝ゥ繧、繝ウ蛻カ蠕。.繝ゥ繧、繝ウ迥カ諷九r蛻、螳壹☆繧�() = <逋ス>
    post i鬧�虚蛻カ蠕。.鬧�虚迥カ諷九r蠕励k() = <蟾ヲ繧ソ繝シ繝ウ荳ュ>;


  -- 繝�せ繝育畑謫堺ス�
  public 襍ー陦檎憾諷九r蠕励k : () ==> 縲瑚オー陦檎憾諷九€�
  襍ー陦檎憾諷九r蠕励k() ==
    return i襍ー陦檎憾諷�;
  
  public 騾イ陦梧婿蜷代r蠕励k : () ==> 縲碁ァ�虚蛻カ蠕。縲港縲碁ァ�虚迥カ諷九€�
  騾イ陦梧婿蜷代r蠕励k() ==
    return i鬧�虚蛻カ蠕。.鬧�虚迥カ諷九r蠕励k();
  
  public 鮟堤キ壹Ξ繝吶Ν繧貞€、繧偵そ繝�ヨ縺吶k : 縲悟�繧サ繝ウ繧オ繝シ縲港縲碁サ堤キ壹Ξ繝吶Ν蛟、縲� ==> ()
  鮟堤キ壹Ξ繝吶Ν繧貞€、繧偵そ繝�ヨ縺吶k(a鮟堤キ壹Ξ繝吶Ν蛟、) ==
    i繝ゥ繧、繝ウ蛻カ蠕。.鮟堤キ壹Ξ繝吶Ν繧貞€、繧偵そ繝�ヨ縺吶k(a鮟堤キ壹Ξ繝吶Ν蛟、);
  
  public 髮サ貅舌�繧ソ繝ウ繧呈款縺� : () ==> ()
  髮サ貅舌�繧ソ繝ウ繧呈款縺�() ==
    i繝懊ち繝ウ蛻カ蠕。.髮サ貅舌�繧ソ繝ウ繧呈款縺�();
  
end 縲悟宛蠕。繝槭す繝ウ縲�
\end{vdm_al}

\begin{rtinfo}
  [縲悟宛蠕。繝槭す繝ウ縲江{vdm.tc}[縲悟宛蠕。繝槭す繝ウ縲江
\end{rtinfo}