/**
* Context represents the context a Concern is created in.
* With a Context you can:
* * Create Concerns
* * Listen to events via subscribe()
* * more
* @interface
*/
class Context {
/**
* subscribe adds a listener for an event
* @param {object} event
* @param {function} handler
*/
subscribe(event, handler) {
}
/**
* publish an event.
* Events are distinguished by the 'name' of their constructor properties.
* @param {object} event
*/
publish(event) {
}
/**
* select a Concern based on it's path
* @param {string} path
*/
select(path) {
}
/**
* concernOf considers a Concern part of this system when it activates.
* @param {ConcernFactory} factory
* @param {string} name
* @returns {Reference}
*/
concernOf(factory, name) {
}
}
export default Context;