1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.tuigwaa.database.function.aggregation;
17
18 public class GroupProjectionFunction extends AbstractProjectionFunction {
19
20 private String option;
21
22 public void setOption(String option) {
23 this.option = option;
24 }
25
26 public String getOption() {
27 return option;
28 }
29
30 public Object evaluate(IProjectionList list) {
31 if (option == null) {
32 return list.addGroupProperty(getField(), getAlias());
33 } else {
34 String[] options = option.split(",");
35 if (options.length > 1) {
36 ((HibernateProjectionList) list).extendColumn(options.length);
37 }
38 for (int i = 0; i < options.length; i++) {
39 list = list.addGroupProperty(options[i] + getField(),
40 options[i] + getAlias());
41 }
42 return list;
43 }
44 }
45 }