private static String getTypeName(GenericType type, List<TypeAnnotationWriteHelper> typeAnnWriteHelpers) {
    int tp = type.getType();
    if (tp <= CodeConstants.TYPE_BOOLEAN) {
      return typeNames[tp];
    }
    else if (tp == CodeConstants.TYPE_VOID) {
      return "void";
    }
    else if (tp == CodeConstants.TYPE_GENVAR) {
      StringBuilder sb = new StringBuilder();
      ExprProcessor.writeTypeAnnotationBeforeType(type, sb, typeAnnWriteHelpers);
      sb.append(type.getValue());
      return sb.toString();
    }
    else if (tp == CodeConstants.TYPE_OBJECT) {
      StringBuilder sb = new StringBuilder();
      appendClassName(type, sb, typeAnnWriteHelpers);
      return sb.toString();
    }

    throw new RuntimeException("Invalid type: " + type);
  }
private static String getTypeName(GenericType type, List<TypeAnnotationWriteHelper> typeAnnWriteHelpers)