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

COVERAGE SUMMARY FOR SOURCE FILE [StateEvent.java]

nameclass, %method, %block, %line, %
StateEvent.java100% (1/1)80%  (8/10)75%  (98/131)87%  (26/30)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class StateEvent100% (1/1)80%  (8/10)75%  (98/131)87%  (26/30)
getStreamEvents (): StreamEvent [] 0%   (0/1)0%   (0/3)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/23)0%   (0/1)
cloneEvent (int): StateEvent 100% (1/1)89%  (41/46)90%  (9/10)
getTimeStamp (): long 100% (1/1)91%  (20/22)80%  (4/5)
StateEvent (StreamEvent []): void 100% (1/1)100% (9/9)100% (4/4)
createCloneEvent (StreamEvent [], int): StateEvent 100% (1/1)100% (10/10)100% (3/3)
getEventState (): int 100% (1/1)100% (3/3)100% (1/1)
getStreamEvent (int): StreamEvent 100% (1/1)100% (5/5)100% (1/1)
setEventState (int): void 100% (1/1)100% (4/4)100% (2/2)
setStreamEvent (int, StreamEvent): void 100% (1/1)100% (6/6)100% (2/2)

1/*
2*  Copyright (c) 2005-2010, 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.event.in;
19 
20import org.wso2.siddhi.core.event.AtomicEvent;
21import org.wso2.siddhi.core.event.ComplexEvent;
22import org.wso2.siddhi.core.event.ListEvent;
23import org.wso2.siddhi.core.event.StreamEvent;
24 
25import java.util.Arrays;
26 
27/**
28 * Event with state
29 */
30public class StateEvent implements ComplexEvent, InStream, AtomicEvent {
31 
32    private int eventState = -1;
33    protected StreamEvent[] streamEvents;
34 
35    public StateEvent(StreamEvent[] streamEvents) {
36        this.streamEvents = streamEvents;
37    }
38 
39    public StreamEvent[] getStreamEvents() {
40        return streamEvents;
41    }
42 
43    public StreamEvent getStreamEvent(int i) {
44        return streamEvents[i];
45    }
46 
47    @Override
48    public long getTimeStamp() {
49        for (int i = streamEvents.length - 1; i >= 0; i--) {
50            StreamEvent streamEvent = streamEvents[i];
51            if (streamEvent != null) {
52                return streamEvent.getTimeStamp();
53 
54            }
55        }
56        return 0;
57    }
58 
59    @Override
60    public String toString() {
61        return "StateEvent{" +
62               "eventState=" + eventState +
63               ", streamEvents=" + (streamEvents == null ? null : Arrays.asList(streamEvents)) +
64               '}';
65    }
66 
67    public void setStreamEvent(int i, StreamEvent streamEvent) {
68        this.streamEvents[i] = streamEvent;
69    }
70 
71    protected StateEvent createCloneEvent(StreamEvent[] newEventStream,
72                                          int eventState) {
73        StateEvent stateEvent = new StateEvent(newEventStream);
74        stateEvent.setEventState(eventState);
75        return stateEvent;
76    }
77 
78    public StateEvent cloneEvent(int stateNumber) {
79        int length = streamEvents.length;
80        StreamEvent[] newEventStream = new StreamEvent[length];
81        for (int i = 0; i < stateNumber; i++) {
82            StreamEvent streamEvent = streamEvents[i];
83            if (streamEvent != null) {
84                if (streamEvent instanceof ListEvent) {
85                    ((ListEvent) streamEvent).cloneEvent();
86                } else {
87                    newEventStream[i] = streamEvent;
88                }
89            }
90        }
91        System.arraycopy(streamEvents, 0, newEventStream, 0, stateNumber);
92        return createCloneEvent(newEventStream, eventState);
93    }
94 
95    public int getEventState() {
96        return eventState;
97    }
98 
99    public void setEventState(int eventState) {
100        this.eventState = eventState;
101    }
102}

[all classes][org.wso2.siddhi.core.event.in]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov