1. Список говнокодов пользователя rphx

    Всего: 2

  2. Java / Говнокод #5790

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 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 строк)

    rphx, 23 Февраля 2011

    Комментарии (3)
  3. Java / Говнокод #5335

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    public static Cursor getListGroupCursor(Activity activity,
    			ShopListItem list, boolean marked) {
    		long state = marked ? Cells.PURCHAZED_STATE : Cells.WANT_TO_BUY_STATE;
    		String where;
    		String[] arg;
    		if (list.isAutoList()) {
    			where = Cells.STATE + " = ?";
    			arg = new String[] { Long.toString(state) };
    		} else {
    			where = Cells.LIST_ID + " = ? AND " + Cells.STATE + " = ?";
    			arg = new String[] { Long.toString(list.getId()),
    					Long.toString(state) };
    		}
    
    		Cursor c = activity.managedQuery(Cells.CONTENT_URI,
    				new String[] { Cells.CATEGORY_ID }, where, arg,
    				Cells.DISTINCT_SORT_ORDER);
    
    		ArrayList<Long> ids = new ArrayList<Long>();
    		while (c != null && c.moveToNext()) {
    			ids.add(new Long(c.getLong(c.getColumnIndex(Cells.CATEGORY_ID))));
    		}
    		if (c != null) {
    			c.close();
    		}
    		int count = ids.size();
    		String whereGroup = null;
    		String[] argGroup = null;
    		if (count > 0) {
    			whereGroup = "";
    			argGroup = new String[count];
    			for (int i = 0; i < count; i++) {
    				if (i < count - 1) {
    					whereGroup += (Categories._ID + "= ? OR ");
    				} else {
    					whereGroup += (Categories._ID + "= ?");
    				}
    
    				argGroup[i] = Long.toString(ids.get(i));
    				// Log.i(tag, "getListGroupCursor "+argGroup[i]);
    			}
    		} else {
    			whereGroup = Categories._ID + "= -1";
    		}
    		Cursor groupCursor = activity.managedQuery(Categories.CONTENT_URI,
    				null, whereGroup, argGroup, Categories.DEFAULT_SORT_ORDER);
    		return groupCursor;
    	}

    Работа с ContentProvider в android. Выборка категорий, id которых присутствуют в результатах первой выборки (по признаку)

    rphx, 19 Января 2011

    Комментарии (29)