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

    +71

    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
    private static final int IDX_OBJECT = 0;
    private static final String PARTY_ACCOUNT_BALANCE_QUERIES = "Select party.id from Party party WHERE party.TaxID='615100175';Select account.id from PaymentAccount account, Party party WHERE party.TaxID='615100175';Select balance.id from PaymentBalance balance WHERE balance.BalanceType='10000';";
    private static final int queryAmount = 3;
    public void createPaymentAccountUpdate() {
    	String[] QUERY = new String[queryAmount];
    	int startIndex = 0, endIndex=0;
    	IRecordset [] rs=null;
    
    	for (int i = 0; i < queryAmount; i++) {
    		endIndex = PARTY_ACCOUNT_BALANCE_QUERIES.indexOf(';', startIndex);
    		QUERY[i] = PARTY_ACCOUNT_BALANCE_QUERIES.substring(startIndex, endIndex);
    		startIndex = endIndex + 1;
    	} 
    	for (int i = 0; i < queryAmount; i++) {
    		rs[i] = s_mgr.newQuery().execute(QUERY[i].toString());
    	}
    	if (rs[0].moveNext()) {
    		IParty party = (IParty)rs[0].valueFromIndex(IDX_OBJECT);
    		if (rs[1].moveNext()) {
    			IPaymentAccount pa = (IPaymentAccount) rs[1].valueFromIndex(IDX_OBJECT);
    			pa.setParty(party);
    		}
    		if (rs[2].moveNext()) {
    			IPaymentBalance pb = (IPaymentBalance) rs[2].valueFromIndex(IDX_OBJECT);
    			pa.setBalance(pb);
    		}            
    		pa.setComment("Test account update created"); 
    		pa.Save();
    	}
    }

    Лучше уж никаких тестов, чем такие

    Запостил: askell, 14 Февраля 2013

    Комментарии (11) RSS

    • Эм-м…
      как минимум,
      String[] queries = PARTY_ACCOUNT_BALANCE_QUERIES.split(";");
      и уже на шесть строк меньше…
      Ответить
      • В одном из прошлых тредов обсуждали что split() недостаточно быстр*.

        * Для обработки гигабайтных CSV файлов.
        Ответить
      • Если уж так хочется массив, то почему не сделать сразу
        private static final String[] PARTY_ACCOUNT_BALANCE_QUERIES = {"Select ","select","select"};

        У меня когда увидел три запроса, слепленных через ";", чуть глаз не выпал.
        Ответить
    • > Select party.id from Party party WHERE party.TaxID='615100175'

      Ехал парти через парти...
      Ответить
    • это даже не совсем тест х_х
      Ответить

    Добавить комментарий