EMMA Coverage Report (generated Sun Mar 01 22:06:14 CET 2015)
[all classes][org.h2.expression]

COVERAGE SUMMARY FOR SOURCE FILE [AggregateDataGroupConcat.java]

nameclass, %method, %block, %line, %
AggregateDataGroupConcat.java100% (1/1)100% (5/5)97%  (66/68)91%  (20/22)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AggregateDataGroupConcat100% (1/1)100% (5/5)97%  (66/68)91%  (20/22)
groupDistinct (Database, int): void 100% (1/1)96%  (23/24)83%  (5/6)
add (Database, int, boolean, Value): void 100% (1/1)97%  (29/30)91%  (10/11)
AggregateDataGroupConcat (): void 100% (1/1)100% (3/3)100% (1/1)
getList (): ArrayList 100% (1/1)100% (3/3)100% (1/1)
getValue (Database, int, boolean): Value 100% (1/1)100% (8/8)100% (3/3)

1/*
2 * Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
3 * and the EPL 1.0 (http://h2database.com/html/license.html).
4 * Initial Developer: H2 Group
5 */
6package org.h2.expression;
7 
8import java.util.ArrayList;
9import org.h2.engine.Database;
10import org.h2.util.New;
11import org.h2.util.ValueHashMap;
12import org.h2.value.Value;
13import org.h2.value.ValueNull;
14 
15/**
16 * Data stored while calculating a GROUP_CONCAT aggregate.
17 */
18class AggregateDataGroupConcat extends AggregateData {
19    private ArrayList<Value> list;
20    private ValueHashMap<AggregateDataGroupConcat> distinctValues;
21 
22    @Override
23    void add(Database database, int dataType, boolean distinct, Value v) {
24        if (v == ValueNull.INSTANCE) {
25            return;
26        }
27        if (distinct) {
28            if (distinctValues == null) {
29                distinctValues = ValueHashMap.newInstance();
30            }
31            distinctValues.put(v, this);
32            return;
33        }
34        if (list == null) {
35            list = New.arrayList();
36        }
37        list.add(v);
38    }
39 
40    @Override
41    Value getValue(Database database, int dataType, boolean distinct) {
42        if (distinct) {
43            groupDistinct(database, dataType);
44        }
45        return null;
46    }
47 
48    ArrayList<Value> getList() {
49        return list;
50    }
51 
52    private void groupDistinct(Database database, int dataType) {
53        if (distinctValues == null) {
54            return;
55        }
56        for (Value v : distinctValues.keys()) {
57            add(database, dataType, false, v);
58        }
59    }
60}

[all classes][org.h2.expression]
EMMA 2.0.5312 (C) Vladimir Roubtsov