diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/ChangePayloadProducer.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/ChangePayloadProducer.java index 78f4319..ffbbb03 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/ChangePayloadProducer.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/ChangePayloadProducer.java @@ -22,8 +22,20 @@ package ru.touchin.roboswag.core.observables.collections.changes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +/** + * Functional interface for calculating change payload between two items same type. + * Payload calculating when items are same {@link SameItemsPredicate}, but content different. + */ public interface ChangePayloadProducer { + + /** + * Calculate change payload between two items. + * + * @param item1 First item; + * @param item2 Second item; + * @return Object that represents minimal changes between two items. + */ @Nullable Object getChangePayload(@NonNull TItem item1, @NonNull TItem item2); diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/CollectionsChangesCalculator.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/CollectionsChangesCalculator.java index d86147d..9f6d026 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/CollectionsChangesCalculator.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/CollectionsChangesCalculator.java @@ -23,14 +23,32 @@ import android.support.annotation.NonNull; import java.util.List; +/** + * Interface that represent changes calculator between two collections. + */ public interface CollectionsChangesCalculator { + /** + * Calculate changes between two collection as collection of objects {@link Change}. + * + * @return List of changes. + */ @NonNull List calculateChanges(); + /** + * Calculate changes between two collection as collection of inserted items. + * + * @return List of inserted item. + */ @NonNull List calculateInsertedItems(); + /** + * Calculate changes between two collection as collection of removed items. + * + * @return List of removed item. + */ @NonNull List calculateRemovedItems(); diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/DefaultCollectionsChangesCalculator.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/DefaultCollectionsChangesCalculator.java index 883fed8..09cd790 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/DefaultCollectionsChangesCalculator.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/DefaultCollectionsChangesCalculator.java @@ -25,6 +25,9 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +/** + * Default calculator between two collections that use equals function. + */ public class DefaultCollectionsChangesCalculator implements CollectionsChangesCalculator { @NonNull diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/DiffCollectionsChangesCalculator.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/DiffCollectionsChangesCalculator.java index 9115e6c..7b72772 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/DiffCollectionsChangesCalculator.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/DiffCollectionsChangesCalculator.java @@ -28,6 +28,9 @@ import java.util.List; import ru.touchin.roboswag.core.android.support.v7.util.DiffUtil; import ru.touchin.roboswag.core.android.support.v7.util.ListUpdateCallback; +/** + * Implementation of {@link CollectionsChangesCalculator} based on DiffUtils from support library. + */ public class DiffCollectionsChangesCalculator extends DiffUtil.Callback implements CollectionsChangesCalculator { @NonNull diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/SameItemsPredicate.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/SameItemsPredicate.java index 1cb03da..611f6a5 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/SameItemsPredicate.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/changes/SameItemsPredicate.java @@ -21,8 +21,20 @@ package ru.touchin.roboswag.core.observables.collections.changes; import android.support.annotation.NonNull; +/** + * Functional interface for determine same objects. Usually this is just the comparison by id. + * + * @param Type of objects + */ public interface SameItemsPredicate { + /** + * Function for determine same objects. + * + * @param item1 First object; + * @param item2 Second object; + * @return True if items are same. + */ boolean areSame(@NonNull TItem item1, @NonNull TItem item2); }