io.cloudslang.lang.tools.build.tester.parallel.services.TestCaseEventDispatchService.java Source code

Java tutorial

Introduction

Here is the source code for io.cloudslang.lang.tools.build.tester.parallel.services.TestCaseEventDispatchService.java

Source

/*******************************************************************************
 * (c) Copyright 2016 Hewlett-Packard Development Company, L.P.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Apache License v2.0 which accompany this distribution.
 *
 * The Apache License is available at
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 *******************************************************************************/
package io.cloudslang.lang.tools.build.tester.parallel.services;

import io.cloudslang.lang.tools.build.tester.ISlangTestCaseEventListener;
import io.cloudslang.lang.tools.build.tester.parallel.testcaseevents.SlangTestCaseEvent;
import org.apache.commons.lang3.event.EventListenerSupport;

import javax.annotation.PostConstruct;

public class TestCaseEventDispatchService {

    private EventListenerSupport<ISlangTestCaseEventListener> listenerList;

    @PostConstruct
    void initializeListeners() {
        this.listenerList = EventListenerSupport.create(ISlangTestCaseEventListener.class);
    }

    public void registerListener(ISlangTestCaseEventListener listener) {
        listenerList.addListener(listener);
    }

    public void unregisterListener(ISlangTestCaseEventListener listener) {
        listenerList.removeListener(listener);
    }

    public void unregisterAllListeners() {
        ISlangTestCaseEventListener[] listeners = listenerList.getListeners();
        if (listeners != null) {
            for (ISlangTestCaseEventListener testCaseEventListener : listeners) {
                listenerList.removeListener(testCaseEventListener);
            }
        }
    }

    public void notifyListeners(SlangTestCaseEvent slangTestCaseEvent) {
        listenerList.fire().onEvent(slangTestCaseEvent);
    }

}