рдЬрд╛рд╡рд╛ рдореЗрдВ Enums рдХрд╛ рд╡рд┐рд╡рд░рдг
рдЬрд╛рд╡рд╛ рдореЗрдВ, рд╕рдВрд╕реНрдХрд░рдг 1.5 рд╕реЗ рд╢реБрд░реВ, рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдмреАрдЪ, рддрдерд╛рдХрдерд┐рдд рдПрдирдо рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдирдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрдИ рд▓рд╛рдн рд╣реИрдВ:
- рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ
- рд╕рднреА рд╕рдВрднрд╡ рдЧрдгрдирд╛ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреА рд╕реБрд╡рд┐рдзрд╛
- рд╡реЗ рд╕реНрд╡рд┐рдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рдХрдо рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВ (рдХреЛрдИ рд╡рд░реНрдЧ рдирд╛рдо рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ)
- рдЖрджрд┐
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рд╕реА ++, рдЬрд╛рд╡рд╛ рдореЗрдВ enums рдкреВрд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИред
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рдЧрдгрдирд╛ java.lang.Enum рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН:
рдирд╛рдо () - рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдирд╛рдо
- рдХреНрд░рдорд┐рдХ () - рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдХреНрд░рдо (рдЙрд╕ рдХреНрд░рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдШреЛрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)
- valueOf () - рдПрдХ рд╕реНрдЯреИрдЯрд┐рдХ рддрд░реАрдХрд╛ рдЬреЛ рдЖрдкрдХреЛ рдХреНрд▓рд╛рд╕ рдФрд░ рдирд╛рдо рд╕реЗ рдПрдиреНрдпреВрдорд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
- рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдПрдиреНрдпреВрдорд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рдХреЗ рдкрд╛рд╕ java.lang.Class.getEnumConstants () рдПрдиреНрдпреВрдорд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рдХреА рд╡рд┐рдзрд┐ рдХрд╣рдХрд░ рд╕рднреА рд╕рдВрднрд╡ рдЧрдгрдирд╛ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред
- рдПрдиреНрдпреВрдорд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рдореЗрдВ, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ (рдХреЗрд╡рд▓ рдирд┐рдЬреА), рдлрд╝реАрд▓реНрдбреНрд╕ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ
- рдЧрдгрдирд╛ рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреА рд╣реИ
- рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧрдгрдирд╛ рдореЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрдореВрд░реНрдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ, рд╡реИрд╕реЗ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд▓реЛрдЧреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ)
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЕрдм рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░рд╛рдВрдХ (рдпрд╛рдиреА рдбреЗрдЯрд╛) рдирд╣реАрдВ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдкреВрд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдЬрд┐рдирд╕реЗ рд╣рдо рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд╛рджрдЧреА рд╢рдХреНрддрд┐ рд╣реИ!
рдиреАрдЪреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдпрд╣ рдЬрдЯрд┐рд▓ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЛрд╕реНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдореБрд╢реНрдХрд┐рд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдЙрдиреНрдореБрдЦ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИ, рдЬреИрд╕реЗ:
- рдПрдХ рд╣реА рдЧрдгрдирд╛ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрдИ рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
- рдЧрдгрди рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╡рд░реНрддреА рдХрд╛ рдЙрдкрдпреЛрдЧ
- рдЗрд╕ рдЧрдгрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рд┐рдЪ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡
рдЗрди рд▓рдХреНрд╖рдгреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЖрд╡реЗрджрди рд╕рдВрджрд┐рдЧреНрдз рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦрддрд░рдирд╛рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреА рдмрдврд╝реА рд╣реБрдИ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЧрд╣рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдмрджрд▓рддреЗ рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рдЧрдгрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЕрдм, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рд░ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдЧрдгрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд▓рд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреВрдБрдХрд┐ рдЧрдгрдирд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рддрд░реАрдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕реНрд╡рд┐рдЪ рд╢рд╛рдЦрд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд╕рднреА рддрд░реНрдХ рдЧрдгрди рд╡рд░реНрдЧ рдХреЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рдбрд╛рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдПрдХ рддрдереНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛рдж рд░рдЦреЗрдВ, рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЧрдгрдирд╛рдУрдВ рдХреА рд╕реНрдкрд╖реНрдЯ рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг, рд╕рд╛рде рд╣реА рд╕рд╛рде рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ C ++ рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдиреНрдпреВрдорд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХрдордЬреЛрд░ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рд╣рдо рд╕рднреА рд╕рд╢рд░реНрдд рддрд░реНрдХ рдХреЛ рдЧрдгрдирд╛ рдХреЗ рддрд░реАрдХреЛрдВ (рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХрдХреНрд╖рд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рддрд░реНрдХ рдХреА рд╕рдВрддреГрдкреНрддрд┐ рдФрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╣реИред рдЗрд╕рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рднреА рдмрдврд╝ рдЬрд╛рддреА рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рд╣рдо рд╕рдВрдЪрдп рдХреЗ рд╡рд░реНрдЧ рдХреЛ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рд╣рдо рдПрдиреНрдпреВрдорд░реЗрд╢рди рдХреНрд▓рд╛рд╕ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рднреАрдбрд╝ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред
- рдпрд╣ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдлреИрдХреНрдЯреНрд░реА рд╕реНрд╡рдпрдВ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЕрд░реНрдерд╛рддред рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реНрддрд░ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, xml рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд▓рд╕рд╕ рдФрд░ minuses рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ:
- + рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдХрдо рд╕реЗ рдХрдо рд╣реИ
- + рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░
- + рд╣реИрдВрдбрд▓рд░ рдХреЗ рддрд░реНрдХ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣реИрдВрдбрд▓рд░ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
- + рдирдП рд╣реИрдВрдбрд▓рд░ (рдореЙрдбреНрдпреВрд▓) рдпрд╛ рдПрдирдо рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдХреБрдЫ рднреА рдирд╣реАрдВ рднреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
- + рдЯреАред рдХреЗред рд╣реИрдВрдбрд▓рд░ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ, рдЖрдк рд╣рдореЗрд╢рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдВрдбрд▓рд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- - рдХреЛрдбрд┐рдВрдЧ рд▓рд╛рдЧрдд рдореЗрдВ рд╡реГрджреНрдзрд┐
- - рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдХреА рдЬрдЯрд┐рд▓рддрд╛
- - рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдм рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреМрддрд┐рдХ рдкреГрдердХреНрдХрд░рдг), рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
рдЗрди рд╕рднреА рдиреБрдХрд╕рд╛рдиреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдП рдЧрдП рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕рдорд░реНрдерди рд▓рд┐рдЦрдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХреБрдЫ рд▓рд╛рдЧрддреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрдВрджреНрд░ рдФрд░ рдПрдХ рдмрд╛рд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдФрд░ рд╣рд░ рдЬрдЧрд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯ рд╣реИ (рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ):
рдкрдмреНрд▓рд┐рдХ рдПрдиреБрдо рдбреЙрдХреНрдпреВрдореЗрдВрдЯрд╕реНрдЯреИрдЯрд╕ { рдирдпрд╛ (0), DRAFT (1), рдкреНрд░рдХрд╛рд╢рд┐рдд (2), ARCHIVED (3); рдирд┐рдЬреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯрд╕реНрдЯреИрдЯрд╕ (int statusCode) { this.statusCode = statusCode; } рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int getStatusCode () { рд╕реНрдЯреЗрдЯрд╕рдХреЛрдб рд╡рд╛рдкрд╕ рдХрд░реЗрдВ; } рдирд┐рдЬреА рдЗрдВрдЯ рд╕реНрдЯреЗрдЯрд╕рдХреЛрдб; } // рд╡реЗрдм рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдбреЙрдХреНрдпреВрдореЗрдВрдЯрд╡рд░реНрдХреНрд╕рдлреНрд▓реЛрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ { ... рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реВрдЪреА <рдСрдкрд░реЗрд╢рди> getAvailableOperations (DocumentStatus рд╕реНрдерд┐рддрд┐) { рд╕реВрдЪреА <рдСрдкрд░реЗрд╢рди> рд╕рдВрдЪрд╛рд▓рди; рд╕реНрд╡рд┐рдЪ (рд╕реНрдерд┐рддрд┐) { рдорд╛рдорд▓рд╛ рдирдпрд╛: рд╕рдВрдЪрд╛рд▓рди = ...; рддреЛрдбрд╝; рдорд╛рдорд▓рд╛ DRAFT: рд╕рдВрдЪрд╛рд▓рди = ...; рддреЛрдбрд╝; рдорд╛рдорд▓рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд: рд╕рдВрдЪрд╛рд▓рди = ...; рддреЛрдбрд╝; рдорд╛рдорд▓рд╛ ARCHIVED: рд╕рдВрдЪрд╛рд▓рди = ...; рддреЛрдбрд╝; } рд╡рд╛рдкрд╕реА рдХреЗ рд╕рдВрдЪрд╛рд▓рди; } рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп doOperation (DocumentStatus рд╕реНрдерд┐рддрд┐, рдСрдкрд░реЗрд╢рди рд╕реЗрд╢рди) APIException рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ { рд╕реНрд╡рд┐рдЪ (рд╕реНрдерд┐рддрд┐) { рдорд╛рдорд▓рд╛ рдирдпрд╛: // рдСрдкрд░реЗрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рддреЛрдбрд╝; рдорд╛рдорд▓рд╛ DRAFT: // рдСрдкрд░реЗрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рдФрд░ рд╕реЗрдЯ рддреЛрдбрд╝; рдорд╛рдорд▓рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд: // рдСрдкрд░реЗрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рддреАрд╕рд░рд╛ рд╕реЗрдЯ рддреЛрдбрд╝; рдорд╛рдорд▓рд╛ ARCHIVED: // рдЖрджрд┐ред рддреЛрдбрд╝; } } } // рдЕрдиреБрд╕реВрдЪрд┐рдд рдХрд╛рд░реНрдп рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ ReportGenerationProcessor { ... рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЬреЗрдирд░реЗрдЯрдкреЛрд░реНрдЯ (рд░рд┐рдкреЛрд░реНрдЯ рд░рд┐рдкреЛрд░реНрдЯ) { DocumentStatus рд╕реНрдерд┐рддрд┐ = report.getDocument ()ред GetStatus (); рд░рд┐рдкреЛрд░реНрдЯрдкрд╛рд░реНрдореНрд╕ рдкрд░рдореЗрд╕; рд╕реНрд╡рд┐рдЪ (рд╕реНрдерд┐рддрд┐) { рдорд╛рдорд▓рд╛ рдирдпрд╛: рдорд╛рдорд▓рд╛ DRAFT: // params = рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪрдпрди рдорд╛рдирджрдВрдб рддреЛрдбрд╝; рдорд╛рдорд▓рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд: // params = рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдЪрдпрди рдорд╛рдирджрдВрдб рддреЛрдбрд╝; рдорд╛рдорд▓рд╛ ARCHIVED: // рдЖрджрд┐ред рддреЛрдбрд╝; } // рд░рд┐рдкреЛрд░реНрдЯ рдЬрдирд░реЗрд╢рди } }
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХрдордЬреЛрд░ рд░реВрдк рд╕реЗ рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП, рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реНрдерд┐рддрд┐ рд╣реИ - рдкреБрд╖реНрдЯрд┐ (VERIFY) рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЧрдпрд╛ред
рдПрдХ рдирдИ рд╕реНрдерд┐рддрд┐ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╕рднреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рдирдпрд╛ рдорд╛рдорд▓рд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдХрд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЬрд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдмреЗрд╢рдХ, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ-рдмреНрд▓реЙрдХ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмрдбрд╝реА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рдореНрди рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ IReportGeneratorProcessor { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдкреЛрд░реНрдЯрдкрд╛рд░реНрдореНрд╕ getReportParams (); } рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ IDocumentWorklfowProcessor { рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реВрдЪреА <рдСрдкрд░реЗрд╢рди> getAvailableOperations (); рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп doOperation (рдСрдкрд░реЗрд╢рди рдСрдк) APIException рдлреЗрдВрдХрддрд╛ рд╣реИ; } рдкрдмреНрд▓рд┐рдХ рдПрдиреБрдо рдбреЙрдХреНрдпреВрдореЗрдВрдЯрд╕реНрдЯреИрдЯрд╕ { // рдпрд╣рд╛рдВ, рдирдП рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдХрд╛рд░рдЦрд╛рдиреЗ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрд▓рд╕реА рдЖрд░рдВрднрд┐рдХ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдирдпрд╛ (0, рдирдпрд╛ NewDocReportGeneratorProcessor (), рдирдпрд╛ NewDocWorklfowProcessor ()), DRAFT (1, рдирдпрд╛ DraftDocReportGeneratorProcessor (), рдирдпрд╛ DraftDocWorklfowProcessor ()) рдкреНрд░рдХрд╛рд╢рд┐рдд (2, ...), ARCHIVED (3, ...); рдирд┐рдЬреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯрд╕реНрдЯреИрдЯрд╕ (int statusCode, IReportGeneratorProcessor рд░рд┐рдкреЛрд░реНрдЯрдкреНрд░рдХрд╛рд╢, IDocumentWorklfowProcessor docProc) { this.statusCode = statusCode; this.reportProc = reportProc; this.docProc = docProc; } рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int getStatusCode () { рд╕реНрдЯреЗрдЯрд╕рдХреЛрдб рд╡рд╛рдкрд╕ рдХрд░реЗрдВ; } рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IReportGeneratorProcessor getReportGeneratorProcessor () { рд╡рд╛рдкрд╕реА рд░рд┐рдкреЛрд░реНрдЯрдкреНрд░рдХрд╛рд╢; } рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IDocumentWorklfowProcessor getDocumentWorklfowProcessor () { рд╡рд╛рдкрд╕реА docProc; } рдирд┐рдЬреА рдЗрдВрдЯ рд╕реНрдЯреЗрдЯрд╕рдХреЛрдб; рдирд┐рдЬреА IReportGeneratorProcessor рд░рд┐рдкреЛрд░реНрдЯрдкреНрд░рдХрд╛рд╢; рдирд┐рдЬреА IDocumentWorklfowProcessor docProc; } // рд╡реЗрдм рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдбреЙрдХреНрдпреВрдореЗрдВрдЯрд╡рд░реНрдХреНрд╕рдлреНрд▓реЛрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ { ... рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реВрдЪреА <рдСрдкрд░реЗрд╢рди> getAvailableOperations (DocumentStatus рд╕реНрдерд┐рддрд┐) { рд╡рд╛рдкрд╕реА рдХреА рд╕реНрдерд┐рддрд┐ред рд╡рд┐рдЬреЗрдЯрдбрд╛рдХреНрдпреВрдорд░рд╡реЙрдХ рд╢реЗрд▓реНрдлрдкреНрд░реЛрд╕реЗрд╕рд░ ()ред getAvailableOperations (); } рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп doOperation (DocumentStatus рд╕реНрдерд┐рддрд┐, рдСрдкрд░реЗрд╢рди рд╕реЗрд╢рди) APIException рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ { status.getDocumentWorklfowProcessor ()ред doOperation (op); } } // рдЕрдиреБрд╕реВрдЪрд┐рдд рдХрд╛рд░реНрдп рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ ReportGenerationProcessor { ... рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЬреЗрдирд░реЗрдЯрдкреЛрд░реНрдЯ (рд░рд┐рдкреЛрд░реНрдЯ рд░рд┐рдкреЛрд░реНрдЯ) { DocumentStatus рд╕реНрдерд┐рддрд┐ = report.getDocument ()ред GetStatus (); ReportParams params = status.getReportGeneratorProcessor ()ред GetReportParams (); // рд░рд┐рдкреЛрд░реНрдЯ рдЬрдирд░реЗрд╢рди } }
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреЛрдб рдмрд╣реБрдд рдХрдо рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдмреЗрд╢рдХ, рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реНрд╡рдпрдВ рдЕрднреА рднреА рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдПрдХ рдирдП рдПрдиреНрдпреВрдорд░реЗрд╢рди рддрддреНрд╡ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░, рдЗрд╕рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЕрдм рдХреЛрдИ рдЦрддрд░рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗ (рдЬрд╛рдирдмреВрдЭрдХрд░ рддреЛрдбрд╝рдлреЛрдбрд╝ рдФрд░ "рдмрд╛рдж рдХреЗ рд▓рд┐рдП рддреНрдпрд╛рдЧ" рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ), рдХрдо рд╕реЗ рдХрдо рд╡реЗ рд╕реЛрдЪреЗрдВрдЧреЗред рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдВрдбрд▓рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ IDocumentWorklfowProcessor getDocumentWorklfowProcessor () { рд╡рд╛рдкрд╕реА (docProc! = null) docProc: DEFAULT_WORKFLOW_PROCESSOR; }
рдкреАрдПрд╕ рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд╡реИрдзрддрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдмреНрд░реЛрд╕реИрдХреНрд╡рд┐рдЯреА рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╡реЛрдЯ рдорд┐рд▓рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ IntelliJ IDEA, Eclipse рдФрд░ NetBeans рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред
рдпреБрдкреАрдбреАред рдЦрдВрдб "рд╕рд░рд▓рддрд╛ рд╢рдХреНрддрд┐ рд╣реИ!" рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдЕрдкрдиреА рдЬрдЧрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдкреЛрд╕реНрдЯ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
UPD 2. рд▓реЛрдХрдкреНрд░рд┐рдп рдорд╛рдВрдЧ рд╕реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рд╛ред рдкреЛрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рднреА рдЬреЛрдбрд╝рд╛ред