1. Java / Говнокод #14494

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public List<ImportException> importFiles() {
        Collection<ImportException> exceptions = new ArrayList<ImportException>();
        /* весь метод exceptions ссылается на этот список */
        return (List<ImportException>) exceptions;
    }

    Полиморфизм ёпт

    evg_ever, 04 Февраля 2014

    Комментарии (17)
  2. Java / Говнокод #14470

    +64

    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
    balance2N(nodeGet(0), nodeGet(0).getLine(0).getNodeConnectedWith(nodeGet(0)));
    
    class Node {
        private ArrayList<Line> children = new ArrayList<Line>();
        public Line getLine (int index) {
            return children.get(index);
        }
    }
    
    class Line {
        private Node[] parents = new Node[2];
        public Node getNodeConnectedWith(Node nodeA) {
                if (parents[0] == nodeA) {
                    return parents[1];  //return node another from this node (node on the other side)
                } else {                //if    parents[1] == nodeA     equals  !(parents[0] == nodeA)
                    return parents[0];
                }
            }
    }

    Метод balance2N делает что-то с двумя нодами.

    energetix_user, 02 Февраля 2014

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

    +76

    1. 1
    2. 2
    3. 3
    public static boolean isNodePresent(String nodeName, String tree, boolean waitForNotNullCondition) {
        return (waitForNotNullCondition) ? getTreeItemId(tree, nodeName) != null : getTreeItemId(tree, nodeName) == null;
    }

    Actine, 30 Января 2014

    Комментарии (9)
  4. Java / Говнокод #14441

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    List<CurrentRegion> currentRegionsFromDb = impl
    		.getAll(CurrentRegion.class);
    
    if (currentRegionsFromDb.size() != 1) {
    	throw new FillReportException();
    }
    
    CurrentRegion currentRegion = (CurrentRegion) currentRegionsFromDb
    		.toArray()[0];

    массив головного мозга

    evg_ever, 29 Января 2014

    Комментарии (83)
  5. Java / Говнокод #14440

    +70

    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
    protected void writeCaptionForDoubleColumns(HSSFWorkbook wb,
    		HSSFSheet sheet, HSSFRow row, HSSFCellStyle fulBorderCalignFont14,
    		Type1 obj1, Type2 obj2,
    		Type3 obj3, Type4 obj4, Type5 obj5,
    		Type6 obj6, Type7 obj7,
    		boolean writeObj6, boolean writeObj5,
    		boolean isHorizontal, String formName, String formNameCode) {
    	writeCaptionForDoubleColumns(wb, sheet, row, fulBorderCalignFont14,
    			obj1, obj2, obj3, obj4, obj5, obj6,
    			obj7, writeObj6, writeObj5, isHorizontal, formName,
    			formNameCode, true, null);
    }
    
    protected void writeCaptionForDoubleColumns(HSSFWorkbook wb,
    		HSSFSheet sheet, HSSFRow row, HSSFCellStyle fulBorderCalignFont14,
    		Type1 obj1, Type2 obj2,
    		Type3 obj3, Type4 obj4, Type5 obj5,
    		Type6 obj6, Type7 obj7,
    		boolean writeObj6, boolean writeObj5,
    		boolean isHorizontal, String formName, String formNameCode,
    		boolean nameFormCaption) {
    	writeCaptionForDoubleColumns(wb, sheet, row, fulBorderCalignFont14,
    			obj1, obj2, obj3, obj4, obj5, obj6,
    			obj7, writeObj6, writeObj5, isHorizontal, formName,
    			formNameCode, nameFormCaption, null);
    }

    описание может быть только матерным

    evg_ever, 29 Января 2014

    Комментарии (41)
  6. Java / Говнокод #14429

    +72

    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
    @Entity
    public class MyObject {
        @Column
        private int type;
    
        @Id
        private long id;
    
        @Column
        private String name;
    
        // и ещё другие поля, а также геттеры-сеттеры для них, в общем, обычная сущность
    }
    
    // managed bean в jsp 1.2 (legacy проект)
    public class MyList {
        private List<MyObject> oList;
        private SimpleDateFormat filterDateFormat;
    
        public MyList() {
            filterDateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        }
    
        public List<MyObject> getMyList() {
            if (oList == null) {
                oList = DAO.getDAO().findAllMyObjects();
                String name = ...; // берётся из формы
                if (name != null && name != "") {
                    oList = getObjectsByName(name, oList);
                }
                Integer type = ...; // тоже берётся из формы
                if (type != null) {
                    oList = getObjectsByType(type, oList);
                }
                // и здесь ещё четыре куска такого же говнокода для других свойств MyObject
            }
            return oList;
        }
    
        private List<MyObject> getObjectsByType(Integer type, List<MyObject> oList) {
            List<MyObject> queriesByType = new ArrayList<MyObject>();
            for (MyObject o : oList) {
                if (o.getType() == type) {
                    queriesByType.add(o);
                }
            }
            return queriesByType;
        }
    
        private List<MyObject> getObjectsByName(String name, List<MyObject> oList) {
            List<MyObject> queriesByName = new ArrayList<MyObject>();
            for (MyObject o : oList) {
                if (o.getName() == name) {
                    queriesByName.add(o);
                }
            }
            return queriesByName;
        }
    
        // и ещё четыре таких же говнометода для других свойств MyObject
    }

    Наглядное руководство, как не надо работать с JPA

    evg_ever, 28 Января 2014

    Комментарии (31)
  7. Java / Говнокод #14418

    +66

    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
    @NamedQuery(
        		name = "ImageBankTag.findAllTags",
        		query = "select distinct tag from AdTag tag where tag.tag in (:tags) order by tag.tag"
        )
    })
    
    @Data
    @Entity
    @Table(name = "image_bank_tags",uniqueConstraints = {@UniqueConstraint(columnNames={"tag"})})
    public class ImageBankTag implements Serializable{
    
    . . .
    
        @NamedQuery(
        		name = "AdTag.findAllTags",
        		query = "select distinct tag from AdTag tag where tag.tag in (:tags) order by tag.tag"
        )
    })
    
    @Data
    @Entity
    @Table(name = "admanager2_tags",uniqueConstraints = {@UniqueConstraint(columnNames={"tag"})})
    public class AdTag implements Serializable{

    Такой вот своеобразный джоин, с подстраховкой.

    wvxvw, 26 Января 2014

    Комментарии (12)
  8. Java / Говнокод #14417

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    ObservableStorage.ConfigurationTuple<Integer, ObservableStorage.ConfigurationTuple<Foo, ObservableStorage.ConfigurationTuple<Foo, ObservableStorage.ConfigurationEnd>>> build = RemoteObservableStorage
            .configurationBuilder()
            .use("foo").as(Foo.class)
            .use("foo1").as(Foo.class)
            .use("ids").as(Integer.class)
            .build();

    И тут Остапа понесло :)
    Всем тайп сейфити посоны

    myzone, 26 Января 2014

    Комментарии (30)
  9. Java / Говнокод #14410

    +117

    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
    final class HackFormFlowPanel extends FormPanel {
    	...
    	
    	@Override
    	public void reset() {
    		GWT.log("Upload form reset suppressed");
    		// Overridden to do nothing.
    	}
    	
    	public void reallyReset() {
    		super.reset();
    	}
    }

    После успешного аплоада файла gwtupload говорит reset форме с элементом выбора файла. И никак не отключается. А нужно, чтобы файл оставался выбранным.

    Пришлось нагородить вот такой костыль.

    someone, 24 Января 2014

    Комментарии (171)
  10. Java / Говнокод #14405

    +74

    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
    if (myTransactions
            .get(i)
            .getTransactionType()
            .name()
            .compareToIgnoreCase(
                    com.mycompany.myproject.common.TransactionType.ENTER
                            .name()) == 0
            || myTransactions
                    .get(i)
                    .getTransactionType()
                    .name()
                    .compareToIgnoreCase(
                                com.mycompany.myproject.common.TransactionType.ENTER_AGAIN
                                        .name()) == 0) {
    
        BigDecimal fee = myTransactions.get(i).
                .getAmount().subtract(
                        myTransactions.get(i)
                                .getContribution());
    // ...
    }
    
    // Notes by Wissenstein
    //
    // package com.mycompany.myproject.common;
    // public enum TransactionType {
    //     ENTER, ENTER_AGAIN, GET, GIVE
    // }
    // ...
    // public class Transaction {
    // ...
    //     public TransactionType getTransactionType() {
    // ...
    //     }
    // }
    // ...
    // List<Transaction> myTransactions;
    // ...
    // P.S. Идентификаторы изменены.

    К тому, что myTransactions.get(i) повторяется, я уже привык и рефакторю это одним махом.
    Однако использованный здесь метод сравнения значений типа enum меня озадачил…

    wissenstein, 23 Января 2014

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