/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.activiti.cdi.test.impl.event;
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.event.Observes;
import org.activiti.cdi.BusinessProcessEvent;
import org.activiti.cdi.annotation.event.AssignTask;
import org.activiti.cdi.annotation.event.BusinessProcess;
import org.activiti.cdi.annotation.event.CompleteTask;
import org.activiti.cdi.annotation.event.CreateTask;
import org.activiti.cdi.annotation.event.DeleteTask;
import org.activiti.cdi.annotation.event.EndActivity;
import org.activiti.cdi.annotation.event.StartActivity;
import org.activiti.cdi.annotation.event.TakeTransition;
@ApplicationScoped
public class TestEventListener {
public void reset() {
startActivityService1WithLoopCounter = 0;
startActivityService1WithoutLoopCounter = 0;
endActivityService1 = 0;
takeTransitiont1 = 0;
takeTransitiont2 = 0;
takeTransitiont3 = 0;
startActivityService2WithLoopCounter = 0;
startActivityService2WithoutLoopCounter = 0;
endActivityService2 = 0;
createTask1 = 0;
createTask2 = 0;
assignTask1 = 0;
completeTask1 = 0;
completeTask2 = 0;
completeTask3 = 0;
deleteTask3 = 0;
eventsReceivedByKey.clear();
eventsReceived.clear();
}
private final Set<BusinessProcessEvent> eventsReceivedByKey = new HashSet<BusinessProcessEvent>();
// receives all events related to "process1"
public void onProcessEventByKey(@Observes @BusinessProcess("process1") BusinessProcessEvent businessProcessEvent) {
eventsReceivedByKey.add(businessProcessEvent);
}
public Set<BusinessProcessEvent> getEventsReceivedByKey() {
return eventsReceivedByKey;
}
// ---------------------------------------------------------
private final Set<BusinessProcessEvent> eventsReceived = new HashSet<BusinessProcessEvent>();
// receives all events
public void onProcessEvent(@Observes BusinessProcessEvent businessProcessEvent) {
eventsReceived.add(businessProcessEvent);
}
public Set<BusinessProcessEvent> getEventsReceived() {
return eventsReceived;
}
// ---------------------------------------------------------
private int startActivityService1WithLoopCounter = 0;
private int startActivityService1WithoutLoopCounter = 0;
private int endActivityService1 = 0;
private int startActivityService2WithLoopCounter = 0;
private int startActivityService2WithoutLoopCounter = 0;
private int endActivityService2 = 0;
private int takeTransitiont1 = 0;
private int takeTransitiont2 = 0;
private int takeTransitiont3 = 0;
private int assignTask1 = 0;
private int completeTask1 = 0;
private int completeTask2 = 0;
private int completeTask3 = 0;
private int createTask1 = 0;
private int createTask2 = 0;
private int deleteTask3 = 0;
public void onStartActivityService1(@Observes @StartActivity("service1") BusinessProcessEvent businessProcessEvent) {
Integer loopCounter = (Integer) businessProcessEvent.getVariableScope().getVariable("loopCounter");
if (loopCounter != null) {
startActivityService1WithLoopCounter += 1;
} else {
startActivityService1WithoutLoopCounter += 1;
}
}
public void onEndActivityService1(@Observes @EndActivity("service1") BusinessProcessEvent businessProcessEvent) {
endActivityService1 += 1;
}
public void onStartActivityService2(@Observes @StartActivity("service2") BusinessProcessEvent businessProcessEvent) {
Integer loopCounter = (Integer) businessProcessEvent.getVariableScope().getVariable("loopCounter");
if (loopCounter != null) {
startActivityService2WithLoopCounter += 1;
} else {
startActivityService2WithoutLoopCounter += 1;
}
}
public void onEndActivityService2(@Observes @EndActivity("service2") BusinessProcessEvent businessProcessEvent) {
endActivityService2 += 1;
}
public void takeTransitiont1(@Observes @TakeTransition("t1") BusinessProcessEvent businessProcessEvent) {
takeTransitiont1 += 1;
}
public void takeTransitiont2(@Observes @TakeTransition("t2") BusinessProcessEvent businessProcessEvent) {
takeTransitiont2 += 1;
}
public void takeTransitiont3(@Observes @TakeTransition("t3") BusinessProcessEvent businessProcessEvent) {
takeTransitiont3 += 1;
}
public void onCreateTask1(@Observes @CreateTask("usertask1") BusinessProcessEvent businessProcessEvent) {
createTask1 += 1;
}
public void onCreateTask2(@Observes @CreateTask("usertask2") BusinessProcessEvent businessProcessEvent) {
createTask2 += 1;
}
public void onAssignTask1(@Observes @AssignTask("usertask1") BusinessProcessEvent businessProcessEvent) {
assignTask1 += 1;
}
public void onCompleteTask1(@Observes @CompleteTask("usertask1") BusinessProcessEvent businessProcessEvent) {
completeTask1 += 1;
}
public void onCompleteTask2(@Observes @CompleteTask("usertask2") BusinessProcessEvent businessProcessEvent) {
completeTask2 += 1;
}
public void onCompleteTask3(@Observes @CompleteTask("usertask3") BusinessProcessEvent businessProcessEvent) {
completeTask3 += 1;
}
public void onDeleteTask3(@Observes @DeleteTask("usertask3") BusinessProcessEvent businessProcessEvent) {
deleteTask3 += 1;
}
public int getEndActivityService1() {
return endActivityService1;
}
public int getTakeTransitiont1() {
return takeTransitiont1;
}
public int getCreateTask1() {
return createTask1;
}
public int getAssignTask1() {
return assignTask1;
}
public int getCompleteTask1() {
return completeTask1;
}
public int getCompleteTask2() {
return completeTask2;
}
public int getCompleteTask3() {
return completeTask3;
}
public int getCreateTask2() {
return createTask2;
}
public int getEndActivityService2() {
return endActivityService2;
}
public int getTakeTransitiont2() {
return takeTransitiont2;
}
public int getTakeTransitiont3() {
return takeTransitiont3;
}
public int getDeleteTask3() {
return deleteTask3;
}
public int getStartActivityService1WithLoopCounter() {
return startActivityService1WithLoopCounter;
}
public int getStartActivityService1WithoutLoopCounter() {
return startActivityService1WithoutLoopCounter;
}
public int getStartActivityService2WithLoopCounter() {
return startActivityService2WithLoopCounter;
}
public int getStartActivityService2WithoutLoopCounter() {
return startActivityService2WithoutLoopCounter;
}
}