public static Stella_Object javaTranslateATree(Stella_Object tree) {
    if (Stella_Object.safePrimaryType(tree) == Stella.SGT_STELLA_CONS) {
      { Cons tree000 = ((Cons)(tree));

        if (tree000 == Stella.NIL) {
          return (tree000.javaTranslateAtomicTree());
        }
        { GeneralizedSymbol testValue000 = ((GeneralizedSymbol)(tree000.value));

          if (testValue000 == Stella.SYM_STELLA_SPECIAL) {
            return (Cons.javaTranslateSpecialTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_VERBATIM) {
            return (Cons.javaTranslateVerbatimTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_UNWIND_PROTECT) {
            return (Cons.javaTranslateUnwindProtect(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_SIGNAL) {
            return (Cons.javaTranslateSignal(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_HANDLER_CASE) {
            return (Cons.javaTranslateHandlerCase(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_HANDLE_EXCEPTION) {
            return (Cons.javaTranslateHandleException(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_VOID_SYS) {
            return (Cons.javaTranslateVoidSys(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_TYPED_SYS) {
            return (Cons.javaTranslateTypedSys(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_BAD_SYS) {
            return (Cons.javaTranslateBadSys(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SETQ) {
            return (Cons.javaTranslateSetqTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_SET_DEFAULT) {
            return (Cons.javaTranslateSysSetDefault(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_SLOT_VALUE) {
            return (Cons.javaTranslateSysSlotValue(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_SLOT_VALUE_SETTER) {
            return (Cons.javaTranslateSysSlotValueSetter(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_CALL_METHOD) {
            return (Cons.javaTranslateMethodCall(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_CALL_FUNCTION) {
            return (Cons.javaTranslateFunctionCall(tree000, null));
          }
          else if (testValue000 == Stella.SYM_STELLA_PROGN) {
            return (Cons.javaTranslateProgn(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_WITH_PROCESS_LOCK) {
            return (Cons.javaTranslateWithProcessLock(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_LOOP) {
            return (Cons.javaTranslateLoop(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_FOREACH) {
            return (Cons.javaTranslateForeachTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_LET) {
            return (Cons.javaTranslateLetTree(tree000));
          }
          else if ((testValue000 == Stella.SYM_STELLA_CAST) ||
              (testValue000 == Stella.SYM_STELLA_SAFE_CAST)) {
            return (Cons.javaTranslateCast(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_RETURN) {
            return (Cons.javaTranslateReturnTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_BREAK) {
            return (Cons.javaTranslateBreak(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_CONTINUE) {
            return (Cons.javaTranslateContinue(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_WHILE) {
            return (Cons.javaTranslateWhile(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_IF) {
            return (Cons.javaTranslateIfTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_CHOOSE) {
            return (Cons.javaTranslateChooseTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_WHEN) {
            return (Cons.javaTranslateWhenTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_UNLESS) {
            return (Cons.javaTranslateUnlessTree(tree000));
          }
          else if ((testValue000 == Stella.SYM_STELLA_AND) ||
              ((testValue000 == Stella.SYM_STELLA_OR) ||
               ((testValue000 == Stella.SYM_STELLA_NOT) ||
                ((testValue000 == Stella.SYM_STELLA_EQp) ||
                 ((testValue000 == Stella.SYM_STELLA_g) ||
                  ((testValue000 == Stella.SYM_STELLA_ge) ||
                   ((testValue000 == Stella.SYM_STELLA_l) ||
                    ((testValue000 == Stella.SYM_STELLA_le) ||
                     ((testValue000 == Stella.SYM_STELLA_ii) ||
                      (testValue000 == Stella.SYM_STELLA___)))))))))) {
            return (Cons.javaTranslateOperatorTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_COND) {
            return (Cons.javaTranslateCondTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_CASE) {
            return (Cons.javaTranslateCaseTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_MAKE) {
            return (Cons.javaTranslateMakeTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_NEW) {
            return (Cons.javaTranslateSysNew(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_MV_SETQ) {
            return (Cons.javaTranslateMvSetq(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_CALL_FUNCTION_CODE) {
            return (Cons.javaTranslateCallFunctionCode(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_CALL_METHOD_CODE) {
            return (Cons.javaTranslateCallMethodCode(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_SYS_INLINE_CALL) {
            return (Cons.javaTranslateInlineCallTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_THE_CODE) {
            return (Cons.javaTranslateTheCode(tree000));
          }
          else if ((testValue000 == Stella.SYM_STELLA_INLINE) ||
              (testValue000 == Stella.SYM_STELLA_IGNORE)) {
            return (Cons.javaTranslateIgnoreTree(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_PRINT_STREAM) {
            return (Cons.javaTranslatePrintStream(tree000));
          }
          else if (testValue000 == Stella.SYM_STELLA_PRINT_NATIVE_STREAM) {
            return (Cons.javaTranslatePrintNativeStream(tree000));
          }
          else {
            { OutputStringStream stream000 = OutputStringStream.newOutputStringStream();

              stream000.nativeStream.print("`" + testValue000 + "' is not a valid case option");
              throw ((StellaException)(StellaException.newStellaException(stream000.theStringReader()).fillInStackTrace()));
            }
          }
        }
      }
    }
    else {
      if (tree == null) {
        return (Stella.javaTranslateNull());
      }
      return (tree.javaTranslateAtomicTree());
    }
  }