Merge branch 'master' into master-rx-java-2
This commit is contained in:
commit
3bf46be7e1
|
|
@ -52,7 +52,7 @@ public abstract class ApiModel implements Serializable {
|
|||
*/
|
||||
@SuppressWarnings({"PMD.PreserveStackTrace", "PMD.CyclomaticComplexity"})
|
||||
// PreserveStackTrace: it's ok - we are logging it on Lc.e()
|
||||
protected static void validateCollection(@NonNull final Collection collection, @NonNull final CollectionValidationRule collectionValidationRule)
|
||||
public static void validateCollection(@NonNull final Collection collection, @NonNull final CollectionValidationRule collectionValidationRule)
|
||||
throws ValidationException {
|
||||
boolean haveValidItem = false;
|
||||
int position = 0;
|
||||
|
|
@ -117,7 +117,7 @@ public abstract class ApiModel implements Serializable {
|
|||
//do nothing
|
||||
}
|
||||
|
||||
protected enum CollectionValidationRule {
|
||||
public enum CollectionValidationRule {
|
||||
EXCEPTION_IF_ANY_INVALID,
|
||||
EXCEPTION_IF_ALL_INVALID,
|
||||
REMOVE_INVALID_ITEMS,
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ import android.support.annotation.NonNull;
|
|||
import java.io.IOException;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.net.SocketException;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
|
|
@ -62,17 +64,41 @@ public abstract class JsonResponseBodyConverter<T> implements Converter<Response
|
|||
}
|
||||
|
||||
if (result instanceof ApiModel) {
|
||||
try {
|
||||
((ApiModel) result).validate();
|
||||
} catch (final ApiModel.ValidationException validationException) {
|
||||
Lc.assertion(validationException);
|
||||
throw validationException;
|
||||
}
|
||||
validateModel((ApiModel) result);
|
||||
}
|
||||
if (result instanceof Collection) {
|
||||
validateCollection((Collection) result);
|
||||
}
|
||||
if (result instanceof Map) {
|
||||
validateCollection(((Map)result).values());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void validateModel(@NonNull final ApiModel result) throws IOException {
|
||||
try {
|
||||
result.validate();
|
||||
} catch (final ApiModel.ValidationException validationException) {
|
||||
Lc.assertion(validationException);
|
||||
throw validationException;
|
||||
}
|
||||
}
|
||||
|
||||
private void validateCollection(@NonNull final Collection result) throws IOException {
|
||||
try {
|
||||
ApiModel.validateCollection(result, getValidateCollectionRule());
|
||||
} catch (final ApiModel.ValidationException validationException) {
|
||||
Lc.assertion(validationException);
|
||||
throw validationException;
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
protected ApiModel.CollectionValidationRule getValidateCollectionRule() {
|
||||
return ApiModel.CollectionValidationRule.EXCEPTION_IF_ANY_INVALID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses response to specific object.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue