- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
public static void getShops(Favorite favoriteBrands,
Favorite favoriteShops, StationItem station,
WorkingTimeFilter workTimeFilter, boolean[] filter, String keyword,
GeoLocationPointItem userLocation,
GeoLocationPointItem searchLocation, String catalogId,
String netId, String page, String pageSize, String api,
AsyncTask callback, ConnectionWatcher watcher) {
//...
//упаковка кучи параметров
boolean emptyFavBrands = false;
if (favoriteBrands != null) {
int i = 0;
for (FavoriteItem item : favoriteBrands) {
String id = item.getId();
Log.i(tag, "addFaforiteBrand " + id);
params.add(new BasicNameValuePair(PARAMS_FAVORITE_BRAND_ID
+ "[" + i + "]", id));
i++;
}
if (i == 0)
emptyFavBrands = true;
}
boolean emptyFavShops = false;
if (favoriteShops != null) {
int i = 0;
for (FavoriteItem item : favoriteShops) {
String id = item.getId();
Log.i(tag, "addFaforiteShop " + id);
params.add(new BasicNameValuePair(PARAMS_FAVORITE_SHOP_ID + "[" + i
+ "]", id));
i++;
}
if (i == 0)
emptyFavShops = true;
}
boolean error = false;
if (emptyFavBrands && emptyFavShops) {
if (favoriteBrands != null || favoriteShops != null)
error = true;
}
if (emptyFavShops) {
if (favoriteBrands == null && favoriteShops != null)
error = true;
}
if (emptyFavBrands) {
if (favoriteBrands != null && favoriteShops == null)
error = true;
}
if (error) {
callback.onError(JsonEntity.FAVORITE_ERROR, new IOException());
return;
}
}
Обращение к веб-сервису. Вызов этого метода при переносе IDE "растекается" на 5-6 строк.
Самое интересное - проверка корректности параметров находится в самом конце метода (длиной 150 строк)