# Class: com.pnfsoftware.jeb.core.events.JebEventSource

The standard engines implementation of an [IEventSource](IEventSource). Designed to emit [JebEvent](JebEvent)s. After deserialization, the listeners list is empty, and the parent set to null \(it is neither serialized nor automatically restored\).

## Constructor: JebEventSource

Description: Create an event with a null parent source.

## Constructor: JebEventSource
- parameter: `parentSource`, type: `com.pnfsoftware.jeb.util.events.IEventSource`

Description: Create an event source and hook it to a parent source. When this source notifies its observers of an event, the "parent source" will also be notified \(regardless of the "parent source" being a listener of that observable\).
parameter: parentSource: source that generated the event

## Static Field: onEventCallCount
Type: `java.util.concurrent.atomic.AtomicInteger`

## Method: addListener
- parameter: `listener`, type: `com.pnfsoftware.jeb.util.events.IEventListener`


## Method: countListeners
- return type: `int`


## Method: getListeners
- return type: `java.util.List<com.pnfsoftware.jeb.util.events.IEventListener>`


## Method: getParentSource
- return type: `com.pnfsoftware.jeb.util.events.IEventSource`


## Method: insertListener
- parameter: `index`, type: `int`
- parameter: `listener`, type: `com.pnfsoftware.jeb.util.events.IEventListener`


## Method: notifyListeners
- parameter: `e`, type: `com.pnfsoftware.jeb.util.events.IEvent`


## Method: notifyListeners
- parameter: `e`, type: `com.pnfsoftware.jeb.core.events.JebEvent`


## Method: notifyListeners
- parameter: `e`, type: `com.pnfsoftware.jeb.core.events.JebEvent`
- parameter: `notifyParent`, type: `boolean`


## Method: removeListener
- parameter: `listener`, type: `com.pnfsoftware.jeb.util.events.IEventListener`


## Method: setParentSource
- parameter: `parentSource`, type: `com.pnfsoftware.jeb.util.events.IEventSource`


