public static Cons javaTranslateDefineNativeClass(Stella_Class renamed_Class) {
    { Stella_Object parentclass = null;
      Cons interfaceclasses = Stella.NIL;
      Cons instancevardefs = Stella.NIL;
      Cons constructordefs = Stella.NIL;
      Cons modifiers = Stella.NIL;
      Cons methoddefs = Stella.NIL;

      { Object old$Context$000 = Stella.$CONTEXT$.get();
        Object old$Module$000 = Stella.$MODULE$.get();

        try {
          Native.setSpecial(Stella.$CONTEXT$, renamed_Class.homeModule());
          Native.setSpecial(Stella.$MODULE$, ((Context)(Stella.$CONTEXT$.get())).baseModule);
          if (renamed_Class.mixinP) {
            return (Stella.NIL);
          }
          if (renamed_Class.abstractP) {
            modifiers = Cons.cons(StringWrapper.wrapString("abstract"), modifiers);
          }
          if (renamed_Class.publicP()) {
            modifiers = Cons.cons(StringWrapper.wrapString("public"), modifiers);
          }
          if (((Surrogate)(renamed_Class.classDirectSupers.first())) != null) {
            parentclass = GeneralizedSymbol.javaTranslateClassName(Surrogate.symbolize(((Surrogate)(renamed_Class.classDirectSupers.first()))));
          }
          instancevardefs = Stella_Class.javaGetInstanceVariableDefinitions(renamed_Class);
          { Object [] caller_MV_returnarray = new Object[1];

            constructordefs = Stella_Class.javaGetConstructorAndMethodDefinitions(renamed_Class, caller_MV_returnarray);
            methoddefs = ((Cons)(caller_MV_returnarray[0]));
          }
          return (Cons.cons((Stella_Class.exceptionClassP(renamed_Class) ? Stella.SYM_STELLA_JAVA_EXCEPTION_CLASS : Stella.SYM_STELLA_JAVA_CLASS), Cons.cons(((((StringWrapper)(KeyValueList.dynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_DOCUMENTATION, Stella.NULL_STRING_WRAPPER))).wrapperValue != null) ? StringWrapper.wrapString(((StringWrapper)(KeyValueList.dynamicSlotValue(renamed_Class.dynamicSlots, Stella.SYM_STELLA_DOCUMENTATION, Stella.NULL_STRING_WRAPPER))).wrapperValue) : null), Cons.cons(modifiers, Cons.cons((renamed_Class.mixinP ? StringWrapper.wrapString("interface") : StringWrapper.wrapString("class")), Cons.cons(GeneralizedSymbol.javaTranslateClassName(Symbol.internSymbolInModule(renamed_Class.classType.symbolName, ((Module)(renamed_Class.classType.homeContext)), false)), Cons.cons(parentclass, Cons.cons(interfaceclasses, Cons.cons(((!(instancevardefs == Stella.NIL)) ? Cons.cons(Cons.cons(Stella.SYM_STELLA_JAVA_DECLARATIONS, instancevardefs.concatenate(Stella.NIL, Stella.NIL)), Stella.NIL) : Stella.NIL), Cons.cons(constructordefs, Cons.cons(methoddefs, Stella.NIL)))))))))));

        } finally {
          Stella.$MODULE$.set(old$Module$000);
          Stella.$CONTEXT$.set(old$Context$000);
        }
      }
    }
  }