EMMA Coverage Report (generated Tue Jul 10 07:50:22 IST 2012)
[all classes][org.wso2.siddhi.core.projector.attibute.generator.groupby]

COVERAGE SUMMARY FOR SOURCE FILE [GroupByOutputAttributeGenerator.java]

nameclass, %method, %block, %line, %
GroupByOutputAttributeGenerator.java100% (1/1)100% (7/7)100% (71/71)100% (16/16)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class GroupByOutputAttributeGenerator100% (1/1)100% (7/7)100% (71/71)100% (16/16)
GroupByOutputAttributeGenerator (ExpressionExecutor []): void 100% (1/1)100% (6/6)100% (3/3)
GroupByOutputAttributeGenerator (List, List): void 100% (1/1)100% (29/29)100% (5/5)
assignAggregateAttributeGenerator (AbstractAggregateAttributeGenerator): Grou... 100% (1/1)100% (13/13)100% (3/3)
assignExpressions (Expression [], List): void 100% (1/1)100% (6/6)100% (2/2)
createNewInstance (): GroupByOutputAttributeGenerator 100% (1/1)100% (6/6)100% (1/1)
getType (): Attribute$Type 100% (1/1)100% (4/4)100% (1/1)
process (AtomicEvent): Object 100% (1/1)100% (7/7)100% (1/1)

1/*
2*  Copyright (c) 2005-2012, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
3*
4*  WSO2 Inc. licenses this file to you under the Apache License,
5*  Version 2.0 (the "License"); you may not use this file except
6*  in compliance with the License.
7*  You may obtain a copy of the License at
8*
9*    http://www.apache.org/licenses/LICENSE-2.0
10*
11* Unless required by applicable law or agreed to in writing,
12* software distributed under the License is distributed on an
13* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14* KIND, either express or implied.  See the License for the
15* specific language governing permissions and limitations
16* under the License.
17*/
18package org.wso2.siddhi.core.projector.attibute.generator.groupby;
19 
20import org.wso2.siddhi.core.event.AtomicEvent;
21import org.wso2.siddhi.core.executor.expression.ExpressionExecutor;
22import org.wso2.siddhi.core.projector.attibute.generator.AbstractAggregateAttributeGenerator;
23import org.wso2.siddhi.core.util.parser.ExecutorParser;
24import org.wso2.siddhi.query.api.definition.Attribute;
25import org.wso2.siddhi.query.api.expression.Expression;
26import org.wso2.siddhi.query.api.expression.Variable;
27import org.wso2.siddhi.query.api.query.QueryEventStream;
28 
29import java.util.List;
30 
31public class GroupByOutputAttributeGenerator extends AbstractAggregateAttributeGenerator {
32 
33    private ExpressionExecutor[] groupByExecutors;
34 
35    //stateful
36    private GroupByAttributeGeneratorMap attributeGeneratorMap;
37    private AbstractAggregateAttributeGenerator attributeGenerator;
38 
39    public GroupByOutputAttributeGenerator(List<Variable> groupByList,
40                                           List<QueryEventStream> queryEventStreamList) {
41        groupByExecutors = new ExpressionExecutor[groupByList.size()];
42        for (int i = 0, expressionsSize = groupByList.size(); i < expressionsSize; i++) {
43            groupByExecutors[i] = ExecutorParser.parseExpression(groupByList.get(i), queryEventStreamList, null);
44        }
45 
46    }
47 
48    private GroupByOutputAttributeGenerator(ExpressionExecutor[] groupByExecutors) {
49        this.groupByExecutors = groupByExecutors;
50    }
51 
52    public GroupByOutputAttributeGenerator assignAggregateAttributeGenerator(
53            AbstractAggregateAttributeGenerator attributeGenerator) {
54        this.attributeGeneratorMap = new GroupByAttributeGeneratorMap(groupByExecutors, attributeGenerator);
55        this.attributeGenerator = attributeGenerator;
56        return this;
57    }
58 
59    @Override
60    public void assignExpressions(Expression[] expressions,
61                                  List<QueryEventStream> queryEventStreamList) {
62        attributeGenerator.assignExpressions(expressions, queryEventStreamList);
63    }
64 
65 
66    @Override
67    public GroupByOutputAttributeGenerator createNewInstance() {
68        return new GroupByOutputAttributeGenerator(groupByExecutors);
69 
70    }
71 
72    @Override
73    public Attribute.Type getType() {
74        return attributeGenerator.getType();
75    }
76 
77    @Override
78    public Object process(AtomicEvent event) {
79        return attributeGeneratorMap.get(event).process(event);
80    }
81}

[all classes][org.wso2.siddhi.core.projector.attibute.generator.groupby]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov