package com.parse; public interface SubscriptionHandling { /** * Register a callback for when an event occurs. * * @param callback The callback to register. * @return The same SubscriptionHandling, for easy chaining. */ SubscriptionHandling handleEvents(Subscription.HandleEventsCallback callback); /** * Register a callback for when an event occurs. * * @param event The event type to handle. You should pass one of the enum cases in Event * @param callback The callback to register. * @return The same SubscriptionHandling, for easy chaining. */ SubscriptionHandling handleEvent(Subscription.Event event, Subscription.HandleEventCallback callback); /** * Register a callback for when an event occurs. * * @param callback The callback to register. * @return The same SubscriptionHandling, for easy chaining. */ SubscriptionHandling handleError(Subscription.HandleErrorCallback callback); /** * Register a callback for when a client succesfully subscribes to a query. * * @param callback The callback to register. * @return The same SubscriptionHandling, for easy chaining. */ SubscriptionHandling handleSubscribe(Subscription.HandleSubscribeCallback callback); /** * Register a callback for when a query has been unsubscribed. * * @param callback The callback to register. * @return The same SubscriptionHandling, for easy chaining. */ SubscriptionHandling handleUnsubscribe(Subscription.HandleUnsubscribeCallback callback); int getRequestId(); interface HandleEventsCallback { void onEvents(ParseQuery query, Subscription.Event event, T object); } interface HandleEventCallback { void onEvent(ParseQuery query, T object); } interface HandleErrorCallback { void onError(ParseQuery query, LiveQueryException exception); } interface HandleSubscribeCallback { void onSubscribe(ParseQuery query); } interface HandleUnsubscribeCallback { void onUnsubscribe(ParseQuery query); } enum Event { CREATE, ENTER, UPDATE, LEAVE, DELETE } }