import java.lang.*;


class _A extends _AnyClass
   implements
      $mi$get$0$int,
      $mi$getClassInfo$0$_ClassInfo,
      $mi$getClassObject$0$_AnyClassObject,
      $mi$getInfo$0$_AnyObjectInfo,
      $mi$isObjectOf$1$_AnyClassObject$boolean,
      $mi$set$1$int,
      $mi$isObjectOf$1$_Any$boolean,
      $mi$equals$1$_Any$boolean,
      $mi$toString$0$String {

   public static $co$A $classObject;
   public static _ClassInfo $i;
   public static $Array$1$_ObjectInstanceVariableInfo OarrayIVI;
   public static $Array$1$_ObjectMethodInfo OarrayMI;
   public static _ClassMethodInfo
      $cmi$get,
      $cmi$set$int,
      $cmi$isObjectOf$_AnyClassObject,
      $cmi$getInfo,
      $cmi$getClassInfo,
      $cmi$getClassObject
      ;
   public static _ClassInitMethodInfo
      $cmi$init
      ;
   public static _ObjectMethodInfo 
      $omi$get,
      $omi$set$int,
      $omi$isObjectOf$_AnyClassObject,
      $omi$getInfo,
      $omi$getClassInfo,
      $omi$getClassObject


      ;

   public _Any $callMethod( int methodNumber, $Array$1$_Any args ) {
      _Any any;

      switch (methodNumber) {
         case 0 :
            {
               if ( args._getSize() != 0)
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               try {
                  any = null;
                  _init();
               } catch ( Exception e ) {
                  throw new PackedException( e );
               }
            }
            break;
         case 1 :
            {
               if ( args._getSize() != 0)
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               try {
                  any = _Integer.$classObject._new$int(_get());
               } catch ( Exception e ) {
                  throw new PackedException( e );
               }
            }
            break;
         case 2 :
            {
               if ( args._getSize() != 1)
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               int $p$k;
               try {
                  $p$k = ((_Integer ) args.v[0])._get();
               } catch ( ClassCastException e ) {
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               }
               try {
                  any = null;
                  _set$int($p$k);
               } catch ( Exception e ) {
                  throw new PackedException( e );
               }
            }
            break;
         case 3 :
            {
               if ( args._getSize() != 1)
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               _AnyClassObject $p$aClass;
               try {
                  $p$aClass = (_AnyClassObject ) args.v[0];
               } catch ( ClassCastException e ) {
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               }
               try {
                  any = _Boolean.$classObject._new$boolean(_isObjectOf$_AnyClassObject($p$aClass));
               } catch ( Exception e ) {
                  throw new PackedException( e );
               }
            }
            break;
         case 4 :
            {
               if ( args._getSize() != 0)
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               try {
                  any = _getInfo();
               } catch ( Exception e ) {
                  throw new PackedException( e );
               }
            }
            break;
         case 5 :
            {
               if ( args._getSize() != 0)
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               try {
                  any = _getClassInfo();
               } catch ( Exception e ) {
                  throw new PackedException( e );
               }
            }
            break;
         case 6 :
            {
               if ( args._getSize() != 0)
                  throw new PackedException( _WrongParametersException.$classObject._new() );
               try {
                  any = _getClassObject();
               } catch ( Exception e ) {
                  throw new PackedException( e );
               }
            }
            break;
         default :
            throw new PackedException( _InternalErrorException.$classObject._new$String("Error in $callMethod in a class object") );
      }
      return any;
   }

   void $set( int ivNumber, _Any value ) {
      switch ( ivNumber ) {
         case 0 :
            try {
               _k = ((_Integer ) value)._get();
            } catch ( ClassCastException e ) {
               throw new PackedException(e);
            }
            break;
         case 1 :
            try {
               _y = (_A ) value;
            } catch ( ClassCastException e ) {
               throw new PackedException(e);
            }
            break;
         case 2 :
            try {
               _z = (_B ) value;
            } catch ( ClassCastException e ) {
               throw new PackedException(e);
            }
            break;
         default :
            throw new PackedException( _InternalErrorException.$classObject._new$String("Error in $set in a class object") );
      }
   }

   _Any $get( int ivNumber ) {
      switch ( ivNumber ) {
         case 0 :
            return _Integer.$classObject._new$int(_k);
         case 1 :
            return _y;
         case 2 :
            return _z;
         default :
            throw new PackedException( _InternalErrorException.$classObject._new$String("Error in $set in a class object") );
      }
   }

   static {
      $classObject = new $co$A();
      $i = new _NormalClassInfo();
   }

   public static void initialize() {

      {
         $cmi$init = (_ClassInitMethodInfo ) _ClassInitMethodInfo.$classObject._new$_MethodBodyInfo$$Array$1$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            null,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }
      {
         $cmi$get = (_ClassMethodInfo ) _ClassMethodInfo.$classObject._new$String$boolean$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "get",
            false,
            1,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            __integer.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }
      {
         _ParameterInfo $p$k = (_ParameterInfo ) _ParameterInfo.$classObject._new$String$_ClassInfo$_MethodInfo$$Array$1$_CodeAnnotation$boolean("k", __integer.$i, null, null, false);
         $cmi$set$int = (_ClassMethodInfo ) _ClassMethodInfo.$classObject._new$String$boolean$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "set",
            false,
            2,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  __integer.$i
                  }
               ),
            null,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  $p$k
                  }
               ),
            null,
            null
            );
         $p$k._$setDeclaringMethod$_MethodInfo($omi$set$int);
      }
      {
         _ParameterInfo $p$aClass = (_ParameterInfo ) _ParameterInfo.$classObject._new$String$_ClassInfo$_MethodInfo$$Array$1$_CodeAnnotation$boolean("aClass", _AnyClassObject.$i, null, null, false);
         $cmi$isObjectOf$_AnyClassObject = (_ClassMethodInfo ) _ClassMethodInfo.$classObject._new$String$boolean$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "isObjectOf",
            false,
            3,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  _AnyClassObject.$i
                  }
               ),
            __boolean.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  $p$aClass
                  }
               ),
            null,
            null
            );
         $p$aClass._$setDeclaringMethod$_MethodInfo($omi$isObjectOf$_AnyClassObject);
      }
      {
         $cmi$getInfo = (_ClassMethodInfo ) _ClassMethodInfo.$classObject._new$String$boolean$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "getInfo",
            false,
            4,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            _AnyObjectInfo.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }
      {
         $cmi$getClassInfo = (_ClassMethodInfo ) _ClassMethodInfo.$classObject._new$String$boolean$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "getClassInfo",
            false,
            5,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            _ClassInfo.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }
      {
         $cmi$getClassObject = (_ClassMethodInfo ) _ClassMethodInfo.$classObject._new$String$boolean$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "getClassObject",
            false,
            6,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            _AnyClassObject.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }

      ((_NormalClassInfo ) $i)._initialize$String$_ClassInfo$$Array$1$_ClassInstanceVariableInfo$$Array$1$_ClassMethodInfo$$Array$1$_ClassInitMethodInfo$_AnyClassObject$boolean$boolean$$Array$1$_CodeAnnotation(
         "A",
         _AnyClass.$i,
         new $Array$1$_ClassInstanceVariableInfo(
            new _ClassInstanceVariableInfo[] {
               (_ClassInstanceVariableInfo ) _ClassInstanceVariableInfo.$classObject._new$String$_ClassInfo$boolean$int$$Array$1$_CodeAnnotation( 
                  "k", 
                  __integer.$i,
                  false, 
                  0, 
                  null
                  ),
               (_ClassInstanceVariableInfo ) _ClassInstanceVariableInfo.$classObject._new$String$_ClassInfo$boolean$int$$Array$1$_CodeAnnotation( 
                  "y", 
                  _A.$i,
                  false, 
                  1, 
                  null
                  ),
               (_ClassInstanceVariableInfo ) _ClassInstanceVariableInfo.$classObject._new$String$_ClassInfo$boolean$int$$Array$1$_CodeAnnotation( 
                  "z", 
                  _B.$i,
                  false, 
                  2, 
                  null
                  )
               }
            ),
         new $Array$1$_ClassMethodInfo(
            new _ClassMethodInfo[] {
               $cmi$get,
               $cmi$set$int,
               $cmi$isObjectOf$_AnyClassObject,
               $cmi$getInfo,
               $cmi$getClassInfo,
               $cmi$getClassObject
               }
            ),
         new $Array$1$_ClassInitMethodInfo(
            new _ClassInitMethodInfo[] {
               $cmi$init
               }
            ),
         $classObject,
         false,
         false,
         null
         );

      $co$A.$init($i, $classObject);
      {
         $omi$get = (_ObjectMethodInfo ) _ObjectMethodInfo.$classObject._new$String$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "get",
            1,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            __integer.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }
      {
         _ParameterInfo $p$k = (_ParameterInfo ) _ParameterInfo.$classObject._new$String$_ClassInfo$_MethodInfo$$Array$1$_CodeAnnotation$boolean("k", __integer.$i, null, null, false);
         $omi$set$int = (_ObjectMethodInfo ) _ObjectMethodInfo.$classObject._new$String$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "set",
            2,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  __integer.$i
                  }
               ),
            null,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  $p$k
                  }
               ),
            null,
            null
            );
         $p$k._$setDeclaringMethod$_MethodInfo($omi$set$int);
      }
      {
         _ParameterInfo $p$aClass = (_ParameterInfo ) _ParameterInfo.$classObject._new$String$_ClassInfo$_MethodInfo$$Array$1$_CodeAnnotation$boolean("aClass", _AnyClassObject.$i, null, null, false);
         $omi$isObjectOf$_AnyClassObject = (_ObjectMethodInfo ) _ObjectMethodInfo.$classObject._new$String$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "isObjectOf",
            3,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  _AnyClassObject.$i
                  }
               ),
            __boolean.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  $p$aClass
                  }
               ),
            null,
            null
            );
         $p$aClass._$setDeclaringMethod$_MethodInfo($omi$isObjectOf$_AnyClassObject);
      }
      {
         $omi$getInfo = (_ObjectMethodInfo ) _ObjectMethodInfo.$classObject._new$String$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "getInfo",
            4,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            _AnyObjectInfo.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }
      {
         $omi$getClassInfo = (_ObjectMethodInfo ) _ObjectMethodInfo.$classObject._new$String$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "getClassInfo",
            5,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            _ClassInfo.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }
      {
         $omi$getClassObject = (_ObjectMethodInfo ) _ObjectMethodInfo.$classObject._new$String$int$_MethodBodyInfo$int$$Array$1$_ClassInfo$_ClassInfo$$Array$1$_ParameterInfo$_ClassInfo$$Array$1$_CodeAnnotation(
            "getClassObject",
            6,
            null,
            $co$MethodInfo._public_v,
            new $Array$1$_ClassInfo(
               new _ClassInfo[] { 
                  }
               ),
            _AnyClassObject.$i,
            new $Array$1$_ParameterInfo(
               new _ParameterInfo[] {
                  }
               ),
            null,
            null
            );
      }
      OarrayMI = new $Array$1$_ObjectMethodInfo(
         new _ObjectMethodInfo[] {
            $omi$get,
            $omi$set$int,
            $omi$isObjectOf$_AnyClassObject,
            $omi$getInfo,
            $omi$getClassInfo,
            $omi$getClassObject


            }
         );
      OarrayIVI = new $Array$1$_ObjectInstanceVariableInfo(
          new _ObjectInstanceVariableInfo[] {
            (_ObjectInstanceVariableInfo ) _ObjectInstanceVariableInfo.$classObject._new$String$_ClassInfo$boolean$int$$Array$1$_CodeAnnotation( 
               "k", 
               __integer.$i,
               false, 
               0, 
               null
               ),
            (_ObjectInstanceVariableInfo ) _ObjectInstanceVariableInfo.$classObject._new$String$_ClassInfo$boolean$int$$Array$1$_CodeAnnotation( 
               "y", 
               _A.$i,
               false, 
               1, 
               null
               ),
            (_ObjectInstanceVariableInfo ) _ObjectInstanceVariableInfo.$classObject._new$String$_ClassInfo$boolean$int$$Array$1$_CodeAnnotation( 
               "z", 
               _B.$i,
               false, 
               2, 
               null
               )
            }
         );
   }

   _A() { }

   public void _init() {

      this._k = 0;
   }

   public int _get() {

      return this._k;
   }

   public _Any _getClassInfo() {

      // start of Java code inside Green code
         return $i;
         
      // end of Java code inside Green code
   }

   public _Any _getClassObject() {

      // start of Java code inside Green code
         return $classObject;
         
      // end of Java code inside Green code
   }

   public _Any _getInfo() {

      // start of Java code inside Green code
         return _ObjectInfo.$classObject._new$_Any$$Array$1$_ObjectInstanceVariableInfo$$Array$1$_ObjectMethodInfo$_ClassInfo( this, OarrayIVI, OarrayMI, $i );
         
      // end of Java code inside Green code
   }

   public boolean _isObjectOf$_AnyClassObject(_Any _aClass) {

      // start of Java code inside Green code
         return $classObject == _aClass;
         
      // end of Java code inside Green code
   }

   public void _set$int(int _k) {

      this._k = _k;
   }

   private int _k;
   private _Any _y;
   private _Any _z;

}
