class Project implements Serializable, Runnable {

    void notifyListeners(final ProjectEvent event) {
        if (projectConfig == null) {
            throw new IllegalStateException("projectConfig is null");
        }

        for (final Listener listener : projectConfig.getListeners()) {
            try {
                listener.handleEvent(event);
            } catch (CruiseControlException e) {
                final StringBuilder message = new StringBuilder("exception notifying listener ");
                message.append(listener.getClass().getName());
                message.append(" for project ").append(name);
                LOG.error(message.toString(), e);
            }
        }
    }

    public  Project();

}