package com.google.android.material.motion; /** * An operation is able to transform incoming values before choosing whether or not to pass them * downstream. * * @param <T> The incoming value type. * @param <U> The downstream value type. */ public abstract class Operation<T, U> { public void preConnect(MotionObserver<U> observer) { } /** * Transforms the incoming value before passing it to the observer, or blocks the value. * * @param value The incoming value. */ public abstract void next(MotionObserver<U> observer, T value); public void postConnect(MotionObserver<U> observer) { } public void preDisconnect(MotionObserver<U> observer) { } public void postDisconnect(MotionObserver<U> observer) { } }