All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.leancloud.convertor.ObserverBuilder Maven / Gradle / Ivy

package cn.leancloud.convertor;

import cn.leancloud.*;
import cn.leancloud.LCUser;
import cn.leancloud.callback.*;
import cn.leancloud.LCObject;
import cn.leancloud.query.LCCloudQueryResult;
import cn.leancloud.types.LCNull;
import cn.leancloud.json.JSONObject;
import io.reactivex.Observer;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;

import java.io.InputStream;
import java.util.List;

public class ObserverBuilder {

  static class SingleObjectObserver implements Observer {
    private LCCallback callback;
    private boolean nextCalled = false;
    SingleObjectObserver(LCCallback callback) {
      this.callback = callback;
    }

    public void onNext(T object) {
      nextCalled = true;
      this.callback.internalDone(object, null);
    }

    public void onComplete() {
      if (!nextCalled) {
        this.callback.internalDone(null, null);
      }
    }

    public void onError(Throwable error) {
      LCException exception = new LCException(error);
      this.callback.internalDone(exception);
    }
    public void onSubscribe(@NonNull Disposable var1) {
      ;
    }
  }

  static class CollectionObserver  implements Observer> {
    private LCCallback> callback;
    CollectionObserver(LCCallback callback) {
      this.callback = callback;
    }

    public void onNext(List object) {
      this.callback.internalDone(object, null);
    }

    public void onComplete() {
    }

    public void onError(Throwable error) {
      LCException exception = new LCException(error);
      this.callback.internalDone(exception);
    }

    public void onSubscribe(@NonNull Disposable var1) {
      ;
    }
  }

  /************************************************
   * Single Object Observer.
   ************************************************/

  /**
   * build observer for GetCallback
   * @param callback get callback
   * @param  template type
   * @return observer
   */
  public static  SingleObjectObserver buildSingleObserver(GetCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for SaveCallback
   * @param callback save callback
   * @param  template type
   * @return observer
   */
  public static  SingleObjectObserver buildSingleObserver(SaveCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for DeleteCallback
   * @param callback delete callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(DeleteCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for RefreshCallback
   * @param callback refresh callback
   * @param  template type
   * @return observer
   */
  public static  SingleObjectObserver buildSingleObserver(RefreshCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for LogInCallback
   * @param callback login calblack
   * @param  template type
   * @return observer
   */
  public static  SingleObjectObserver buildSingleObserver(LogInCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for SignupCallback
   * @param callback signup callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(SignUpCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for RequestEmailVerifyCallback
   * @param callback request email verify callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(RequestEmailVerifyCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for RequestMobileCodeCallback
   * @param callback request mobile code callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(RequestMobileCodeCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for FollowersAndFolloweesCallback
   * @param callback follower and followees callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(FollowersAndFolloweesCallback callback) {
    return new SingleObjectObserver<>(callback);
  }

  /**
   * build observer for RequestPasswordResetCallback
   * @param callback request password reset callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(RequestPasswordResetCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for CountCallback
   * @param callback count callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(CountCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for UpdatePasswordCallback
   * @param callback update password callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(UpdatePasswordCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for MobilePhoneVerifyCallback
   * @param callback mobile phone verify callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(MobilePhoneVerifyCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for FollowCallback
   * @param callback follow callback
   * @param  template type
   * @return observer
   */
  public static  SingleObjectObserver buildSingleObserver(FollowCallback callback) {
    return new SingleObjectObserver<>(callback);
  }

  /**
   * build observer for FunctionCallback
   * @param callback function callback
   * @param  template type
   * @return observer
   */
  public static  SingleObjectObserver buildSingleObserver(FunctionCallback callback) {
    return new SingleObjectObserver<>(callback);
  }

  /**
   * build observer for CloudQueryCallback
   * @param callback cloud query callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(CloudQueryCallback callback) {
    return new SingleObjectObserver<>(callback);
  }

  /**
   * build observer for StatusCallback
   * @param callback status callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(StatusCallback callback) {
    return new SingleObjectObserver<>(callback);
  }

  /**
   * build observer for SendCallback
   * @param callback send callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(SendCallback callback) {
    return new SingleObjectObserver(callback);
  }

  /**
   * build observer for GetDataCallback
   * @param callback get data callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(GetDataCallback callback) {
    return new SingleObjectObserver<>(callback);
  }

  /**
   * build observer for GetDataStreamCallback
   * @param callback get data stream callback
   * @return observer
   */
  public static SingleObjectObserver buildSingleObserver(GetDataStreamCallback callback) {
    return new SingleObjectObserver<>(callback);
  }

  /************************************************
   * Multiple Objects Observer.
   ************************************************/

  /**
   * build observer for FindCallback
   * @param callback find callback
   * @param  template type
   * @return observer
   */
  public static  CollectionObserver buildCollectionObserver(FindCallback callback) {
    return new CollectionObserver(callback);
  }

  /**
   * build observer for StatusListCallback
   * @param callback status list callback
   * @return observer
   */
  public static CollectionObserver buildCollectionObserver(StatusListCallback callback) {
    return new CollectionObserver<>(callback);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy