code: private FieldSpec generateRxMappingMethod(ObjectMappableAnnotatedClass clazz) {
  
      String objectVarName = "item";
      String cursorVarName = "cursor";
  
      TypeName elementType = ClassName.get(clazz.getElement().asType());
  
      // new Func1<Cursor, ListsItem>()
  
      CodeBlock.Builder initBlockBuilder = CodeBlock.builder()
          .add("new $L<$L, $L>() {\n", Func1.class.getSimpleName(), Cursor.class.getSimpleName(),
              elementType)
          .indent()
          .add("@Override public $L call($L cursor) {\n", elementType, Cursor.class.getSimpleName())
          .indent();
  
      // assign the columns indexes
      generateColumnIndexCode(initBlockBuilder, clazz.getColumnAnnotatedElements(), cursorVarName);
  
      // Instantiate element
      initBlockBuilder.addStatement("$T $L = new $T()", elementType, objectVarName, elementType);
  
      // read cursor into element variable
      for (ColumnAnnotateable e : clazz.getColumnAnnotatedElements()) {
        String indexVaName = e.getColumnName() + "Index";
        initBlockBuilder.beginControlFlow("if ($L >= 0)", indexVaName);
        e.generateAssignStatement(initBlockBuilder, objectVarName, cursorVarName, indexVaName);
        initBlockBuilder.endControlFlow();
      }
  
      initBlockBuilder.addStatement("return $L", objectVarName)
          .unindent()
          .add("}\n") // end call () method
          .unindent()
          .add("}") // end anonymous class
          .build();
  
      ParameterizedTypeName fieldType =
          ParameterizedTypeName.get(ClassName.get(Func1.class), ClassName.get(Cursor.class),
              elementType);
  
      return FieldSpec.builder(fieldType, "MAPPER", Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL)
          .initializer(initBlockBuilder.build())
          .build();
    }
docs: Generates the field that can be used as RxJava method
  
  @param clazz The {@link ObjectMappableAnnotatedClass}
  @return MethodSpec