From 07a9038987c0bc2e24b619883bdb4cf8828607c4 Mon Sep 17 00:00:00 2001 From: jora Date: Mon, 25 Dec 2017 12:09:08 +0200 Subject: [PATCH] Documented code. --- .../respiration/RespirationModule.java | 3 +++ .../respiration/RespirationRepository.java | 22 +++++++++++++++++++ .../repository/FirebaseRepository.java | 16 ++++++++++++++ .../repository/ListRepository.java | 3 +++ 4 files changed, 44 insertions(+) diff --git a/respiration-annotations/src/main/java/com/link184/respiration/RespirationModule.java b/respiration-annotations/src/main/java/com/link184/respiration/RespirationModule.java index a9ea29b..4f9d954 100644 --- a/respiration-annotations/src/main/java/com/link184/respiration/RespirationModule.java +++ b/respiration-annotations/src/main/java/com/link184/respiration/RespirationModule.java @@ -9,6 +9,9 @@ * Created by jora on 11/25/17. */ +/** + * Use to annotate classes which store {@link RespirationRepository} fields. + */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.SOURCE) public @interface RespirationModule { diff --git a/respiration-annotations/src/main/java/com/link184/respiration/RespirationRepository.java b/respiration-annotations/src/main/java/com/link184/respiration/RespirationRepository.java index e451728..26857e6 100644 --- a/respiration-annotations/src/main/java/com/link184/respiration/RespirationRepository.java +++ b/respiration-annotations/src/main/java/com/link184/respiration/RespirationRepository.java @@ -5,16 +5,38 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +/** + * Use it to annotate classes which extend GeneralRepository or ListRepository from respiration + * library. Also annotation can be used for fields inside a annotated with {@link RespirationModule} + * class. + */ @Retention(RetentionPolicy.SOURCE) @Target({ElementType.TYPE, ElementType.FIELD}) public @interface RespirationRepository { + /** + * Use it as database reference children. If you got to use firebase userId as database reference + * path you must always reset this path on each firebase auth state change. Or you can just use + * this constant to avoid boring auth listening. + */ String USER_ID = "user_id"; + /** + * Give me firebase model class. + */ Class dataSnapshotType(); + /** + * Set firebaseDatabaseRef.setPersistenceEnabled(). Can be set only one time. + */ boolean persistence() default false; + /** + * Firebase database reference children. + */ String[] children() default ""; + /** + * Set as true if the repository can be accessed only by authenticated users. + */ boolean isAccessPrivate() default false; } diff --git a/respiration/src/main/java/com/link184/respiration/repository/FirebaseRepository.java b/respiration/src/main/java/com/link184/respiration/repository/FirebaseRepository.java index 7847703..261919e 100644 --- a/respiration/src/main/java/com/link184/respiration/repository/FirebaseRepository.java +++ b/respiration/src/main/java/com/link184/respiration/repository/FirebaseRepository.java @@ -79,14 +79,23 @@ public void subscribe(Consumer onNext, Consumer on behaviorSubject.subscribe(tNotification -> onNext.accept(tNotification.getValue()), onError, onComplete, onSubscribe); } + /** + * Unleash all reactive power. + */ public Observable> asObservable() { return behaviorSubject; } + /** + * @return true if user is authenticated to firebase. + */ public boolean isUserAuthenticated() { return firebaseAuth.getCurrentUser() != null; } + /** + * @return firebase user id. + */ public String getUserId() { if (isUserAuthenticated()) { return firebaseAuth.getCurrentUser().getUid(); @@ -96,6 +105,10 @@ public String getUserId() { protected abstract void initRepository(); + /** + * Reset firebase database reference children. + * @param databaseChildren new children to replace the old ones. + */ public abstract void resetRepository(String... databaseChildren); /** @@ -106,6 +119,9 @@ public T getValue() { return behaviorSubject.getValue().getValue(); } + /** + * @return {@link FirebaseAuth} + */ public FirebaseAuth getFirebaseAuth() { return firebaseAuth; } diff --git a/respiration/src/main/java/com/link184/respiration/repository/ListRepository.java b/respiration/src/main/java/com/link184/respiration/repository/ListRepository.java index ac45fa6..df9cca3 100644 --- a/respiration/src/main/java/com/link184/respiration/repository/ListRepository.java +++ b/respiration/src/main/java/com/link184/respiration/repository/ListRepository.java @@ -203,6 +203,9 @@ public void resetRepository(String... databaseChildren) { initRepository(); } + /** + * Use this method instead of {@link super.asObservable()} + */ public Observable>> asListObservable() { return behaviorSubject; }