diff --git a/src/main/java/ru/touchin/roboswag/core/log/ConsoleLogProcessor.java b/src/main/java/ru/touchin/roboswag/core/log/ConsoleLogProcessor.java index 228b827..04af630 100644 --- a/src/main/java/ru/touchin/roboswag/core/log/ConsoleLogProcessor.java +++ b/src/main/java/ru/touchin/roboswag/core/log/ConsoleLogProcessor.java @@ -35,6 +35,7 @@ public class ConsoleLogProcessor extends LogProcessor { super(lclevel); } + @NonNull private String normalize(@NonNull final String message) { return message.replace("\r\n", "\n").replace("\0", ""); } diff --git a/src/main/java/ru/touchin/roboswag/core/log/Lc.java b/src/main/java/ru/touchin/roboswag/core/log/Lc.java index d3f25d1..8ac2c6c 100644 --- a/src/main/java/ru/touchin/roboswag/core/log/Lc.java +++ b/src/main/java/ru/touchin/roboswag/core/log/Lc.java @@ -45,12 +45,12 @@ public final class Lc { public static final LcGroup GENERAL_LC_GROUP = new LcGroup("GENERAL"); + public static final int STACK_TRACE_CODE_DEPTH; + private static boolean crashOnAssertions = true; @NonNull private static LogProcessor logProcessor = new ConsoleLogProcessor(LcLevel.ERROR); - public static final int STACK_TRACE_CODE_DEPTH; - static { final StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); int stackDepth; @@ -164,7 +164,7 @@ public final class Lc { * @param message Message or format of message to log; * @param args Arguments of formatted message. */ - public static void e(@NonNull final String message, final Object... args) { + public static void e(@NonNull final String message, @NonNull final Object... args) { GENERAL_LC_GROUP.e(message, args); } @@ -175,7 +175,7 @@ public final class Lc { * @param message Message or format of message to log; * @param args Arguments of formatted message. */ - public static void e(@NonNull final Throwable throwable, @NonNull final String message, final Object... args) { + public static void e(@NonNull final Throwable throwable, @NonNull final String message, @NonNull final Object... args) { GENERAL_LC_GROUP.e(throwable, message, args); } diff --git a/src/main/java/ru/touchin/roboswag/core/log/LcGroup.java b/src/main/java/ru/touchin/roboswag/core/log/LcGroup.java index 4ced178..01777f9 100644 --- a/src/main/java/ru/touchin/roboswag/core/log/LcGroup.java +++ b/src/main/java/ru/touchin/roboswag/core/log/LcGroup.java @@ -186,7 +186,7 @@ public class LcGroup { * @param message Message or format of message to log; * @param args Arguments of formatted message. */ - public void e(@NonNull final String message, final Object... args) { + public void e(@NonNull final String message, @NonNull final Object... args) { logMessage(LcLevel.ERROR, message, null, args); } @@ -197,7 +197,7 @@ public class LcGroup { * @param message Message or format of message to log; * @param args Arguments of formatted message. */ - public void e(@NonNull final Throwable throwable, @NonNull final String message, final Object... args) { + public void e(@NonNull final Throwable throwable, @NonNull final String message, @NonNull final Object... args) { logMessage(LcLevel.ERROR, message, throwable, args); } diff --git a/src/main/java/ru/touchin/roboswag/core/observables/Changeable.java b/src/main/java/ru/touchin/roboswag/core/observables/Changeable.java index 40f4f1f..171fc42 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/Changeable.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/Changeable.java @@ -27,6 +27,7 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; +import ru.touchin.roboswag.core.utils.ObjectUtils; import rx.Observable; import rx.subjects.BehaviorSubject; @@ -50,7 +51,7 @@ public class Changeable implements Serializable { * * @param value Value to set. */ - public void set(final T value) { + public void set(@Nullable final T value) { subject.onNext(value); } @@ -74,17 +75,17 @@ public class Changeable implements Serializable { return subject.distinctUntilChanged(); } - private void writeObject(final ObjectOutputStream outputStream) throws IOException { + private void writeObject(@NonNull final ObjectOutputStream outputStream) throws IOException { outputStream.writeObject(subject.getValue()); } @SuppressWarnings("unchecked") - private void readObject(final ObjectInputStream inputStream) throws IOException, ClassNotFoundException { + private void readObject(@NonNull final ObjectInputStream inputStream) throws IOException, ClassNotFoundException { subject = BehaviorSubject.create((T) inputStream.readObject()); } @Override - public boolean equals(final Object object) { + public boolean equals(@Nullable final Object object) { if (this == object) { return true; } @@ -93,8 +94,7 @@ public class Changeable implements Serializable { } final Changeable that = (Changeable) object; - return subject.getValue() != null ? subject.getValue().equals(that.subject.getValue()) : that.subject.getValue() == null; - + return ObjectUtils.equals(subject.getValue(), that.subject.getValue()); } @Override diff --git a/src/main/java/ru/touchin/roboswag/core/observables/RxAndroidUtils.java b/src/main/java/ru/touchin/roboswag/core/observables/RxAndroidUtils.java index 4e4c006..96ff8d6 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/RxAndroidUtils.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/RxAndroidUtils.java @@ -98,7 +98,7 @@ public final class RxAndroidUtils { @SuppressWarnings("unchecked") @Override - public void onServiceConnected(final ComponentName name, final IBinder service) { + public void onServiceConnected(@NonNull final ComponentName name, @Nullable final IBinder service) { if (subscriber == null) { return; } @@ -111,7 +111,7 @@ public final class RxAndroidUtils { } @Override - public void onServiceDisconnected(final ComponentName name) { + public void onServiceDisconnected(@NonNull final ComponentName name) { if (subscriber != null) { subscriber.onNext(null); } @@ -121,8 +121,9 @@ public final class RxAndroidUtils { private static class LooperThread extends Thread { + @NonNull private final CountDownLatch isLooperInitialized = new CountDownLatch(1); - public Looper looper; + private Looper looper; @Override public void run() { diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/Change.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/Change.java index 168c80c..876d25f 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/Change.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/Change.java @@ -103,6 +103,7 @@ public class Change { return count; } + @NonNull @Override public String toString() { return type + " change of " + start + ":" + count; diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/MoreLoadRequest.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/MoreLoadRequest.java index 8e4830f..6cac3fc 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/MoreLoadRequest.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/MoreLoadRequest.java @@ -60,10 +60,10 @@ public class MoreLoadRequest { } @Override - public boolean equals(final Object obj) { - return obj instanceof MoreLoadRequest - && ObjectUtils.equals(((MoreLoadRequest) obj).moreReference, moreReference) - && ((MoreLoadRequest) obj).nextPosition == nextPosition; + public boolean equals(@Nullable final Object object) { + return object instanceof MoreLoadRequest + && ObjectUtils.equals(((MoreLoadRequest) object).moreReference, moreReference) + && ((MoreLoadRequest) object).nextPosition == nextPosition; } @Override diff --git a/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/NewerLoadRequest.java b/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/NewerLoadRequest.java index d2d3619..6566bd9 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/NewerLoadRequest.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/collections/loadable/NewerLoadRequest.java @@ -60,10 +60,10 @@ public class NewerLoadRequest { } @Override - public boolean equals(final Object obj) { - return obj instanceof NewerLoadRequest - && ObjectUtils.equals(((NewerLoadRequest) obj).newerReference, newerReference) - && ((NewerLoadRequest) obj).newerItemsCount == newerItemsCount; + public boolean equals(@Nullable final Object object) { + return object instanceof NewerLoadRequest + && ObjectUtils.equals(((NewerLoadRequest) object).newerReference, newerReference) + && ((NewerLoadRequest) object).newerItemsCount == newerItemsCount; } @Override diff --git a/src/main/java/ru/touchin/roboswag/core/utils/ObjectUtils.java b/src/main/java/ru/touchin/roboswag/core/utils/ObjectUtils.java index 7f9c1da..a6170dc 100644 --- a/src/main/java/ru/touchin/roboswag/core/utils/ObjectUtils.java +++ b/src/main/java/ru/touchin/roboswag/core/utils/ObjectUtils.java @@ -107,7 +107,7 @@ public final class ObjectUtils { } @SuppressWarnings("PMD.AvoidUsingShortType") - private static boolean isArraysEquals(@NonNull final Object object1, @Nullable final Object object2, final Class elementType) { + private static boolean isArraysEquals(@NonNull final Object object1, @Nullable final Object object2, @NonNull final Class elementType) { if (object1 instanceof Object[]) { return Arrays.deepEquals((Object[]) object1, (Object[]) object2); } else if (elementType == int.class) { diff --git a/src/main/java/ru/touchin/roboswag/core/utils/ThreadLocalValue.java b/src/main/java/ru/touchin/roboswag/core/utils/ThreadLocalValue.java index ce8b235..6efbcc7 100644 --- a/src/main/java/ru/touchin/roboswag/core/utils/ThreadLocalValue.java +++ b/src/main/java/ru/touchin/roboswag/core/utils/ThreadLocalValue.java @@ -32,14 +32,23 @@ public class ThreadLocalValue extends ThreadLocal { @NonNull private final Func0 creator; - public ThreadLocalValue(@NonNull final Func0 creator) { + public ThreadLocalValue(@NonNull final NonNullFunc creator) { super(); this.creator = creator; } + @NonNull @Override protected T initialValue() { return creator.call(); } + public interface NonNullFunc extends Func0 { + + @NonNull + @Override + T call(); + + } + } \ No newline at end of file diff --git a/src/main/java/ru/touchin/roboswag/core/utils/pairs/HalfNullablePair.java b/src/main/java/ru/touchin/roboswag/core/utils/pairs/HalfNullablePair.java index e00d0b4..fbee09d 100644 --- a/src/main/java/ru/touchin/roboswag/core/utils/pairs/HalfNullablePair.java +++ b/src/main/java/ru/touchin/roboswag/core/utils/pairs/HalfNullablePair.java @@ -66,7 +66,7 @@ public class HalfNullablePair implements Serializable { } @Override - public boolean equals(final Object object) { + public boolean equals(@Nullable final Object object) { if (this == object) { return true; } diff --git a/src/main/java/ru/touchin/roboswag/core/utils/pairs/NonNullPair.java b/src/main/java/ru/touchin/roboswag/core/utils/pairs/NonNullPair.java index ae6592a..f185c66 100644 --- a/src/main/java/ru/touchin/roboswag/core/utils/pairs/NonNullPair.java +++ b/src/main/java/ru/touchin/roboswag/core/utils/pairs/NonNullPair.java @@ -20,6 +20,7 @@ package ru.touchin.roboswag.core.utils.pairs; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import java.io.Serializable; @@ -65,7 +66,7 @@ public class NonNullPair implements Serializable { } @Override - public boolean equals(final Object object) { + public boolean equals(@Nullable final Object object) { if (this == object) { return true; } diff --git a/src/main/java/ru/touchin/roboswag/core/utils/pairs/NullablePair.java b/src/main/java/ru/touchin/roboswag/core/utils/pairs/NullablePair.java index 28c4b4b..21f630d 100644 --- a/src/main/java/ru/touchin/roboswag/core/utils/pairs/NullablePair.java +++ b/src/main/java/ru/touchin/roboswag/core/utils/pairs/NullablePair.java @@ -70,17 +70,17 @@ public class NullablePair implements Serializable { //todo: mb } @Override - public boolean equals(final Object obj) { - if (this == obj) { + public boolean equals(@Nullable final Object object) { + if (this == object) { return true; } - if (obj == null || getClass() != obj.getClass()) { + if (object == null || getClass() != object.getClass()) { return false; } - final NullablePair that = (NullablePair) obj; + final NullablePair that = (NullablePair) object; - return ObjectUtils.equals(first, that.getFirst()) && ObjectUtils.equals(second, that.getSecond()); + return ObjectUtils.equals(first, that.first) && ObjectUtils.equals(second, that.second); } @Override