override fun generateFor()

in buildSrc/artist-traits-rx/src/main/kotlin/com/uber/artist/traits/rx/JavaScrollableTrait.kt [28:60]


  override fun generateFor(
      type: TypeSpec.Builder,
      initMethod: MethodSpec.Builder,
      rClass: ClassName,
      sourceType: String) {

    // ScrollView overrides
    if (sourceType.contains("ScrollView")) {
      addRxBindingApiForSettable(type, JavaSettableApi(
          JavaRxBindingInfo(JavaRxTypeNames.Rx.RxNestedScrollView,
              "scrollChangeEvents",
              """@return an observable of scroll-change events for this NestedScrollView.
    """),
          ClassName.bestGuess("OnScrollChangeListener"),
          "setOnScrollChangeListener",
          JavaRxTypeNames.Rx.ViewScrollChangeEvent,
          MethodSpec.methodBuilder("accept")
              .addModifiers(Modifier.PUBLIC)
              .addParameter(JavaRxTypeNames.Rx.ViewScrollChangeEvent, "event")
              .addStatement("l.onScrollChange($sourceType.this, event.getScrollX(), event" +
                  ".getScrollY" +
                  "(), event.getOldScrollX(), event.getOldScrollY())")))
    }

    // RecyclerView overrides
    if (sourceType.contains("RecyclerView")) {
      addRxBindingApiForAdditive(type, JavaAdditiveApi(
          JavaRxBindingInfo(JavaRxTypeNames.Rx.RxRecyclerView,
              "scrollEvents",
              "@return an observable of scroll events on this RecyclerView"),
          JavaRxTypeNames.Rx.RecyclerViewScrollEvent))
    }
  }