package de.uka.ipd.consensus.foundation;

import java.util.EventObject;

import de.uka.ipd.consensus.foundation.evolution.EvolutionManager;
import de.uka.ipd.consensus.foundation.logging.LoggingManager;
import de.uka.ipd.consensus.foundation.ontology.OntologyManager;
import de.uka.ipd.consensus.foundation.rating.RatingManager;
import de.uka.ipd.consensus.foundation.rights.DynamicRightsManager;
import de.uka.ipd.consensus.foundation.scoring.IncentiveManager;
import de.uka.ipd.consensus.foundation.user.UserManager;

/**
 * An abstract superclass for the various event types of the ConsensusFoundation framework.
 * It offers easy access to the seven managers (components) within each event that subclasses this class.
 * @author Thomas Much
 * @version 2006-06-14
 */
public abstract class AbstractConsensusFoundationEvent extends EventObject implements ConsensusFoundationManager {

	private transient ConsensusFoundationManager cfm;


	public AbstractConsensusFoundationEvent(ConsensusFoundationManager cfm, Object source) {
		super(source);
		this.cfm = cfm;
	}

	
	public LoggingManager getLoggingManager() {
		return cfm.getLoggingManager();
	}

	
	public UserManager getUserManager() {
		return cfm.getUserManager();
	}

	
	public OntologyManager getOntologyManager() {
		return cfm.getOntologyManager();
	}

	
	public EvolutionManager getEvolutionManager() {
		return cfm.getEvolutionManager();
	}

	
	public RatingManager getRatingManager() {
		return cfm.getRatingManager();
	}

	
	public IncentiveManager getIncentiveManager() {
		return cfm.getIncentiveManager();
	}


	public DynamicRightsManager getDynamicRightsManager() {
		return cfm.getDynamicRightsManager();
	}


	public String getVersion() {
		return cfm.getVersion();
	}
}
