/** * */ package org.goko.core.workspace.service; import org.eclipse.core.runtime.IProgressMonitor; import org.goko.core.common.exception.GkException; import org.goko.core.workspace.io.IProjectLocation; import org.goko.core.workspace.io.XmlProjectContainer; /** * @author PsyKo * @date 21 f�vr. 2016 */ public abstract class AbstractProjectLoadParticipant<T extends XmlProjectContainer> implements IProjectLoadParticipant { /** The class of the container */ private Class<T> containerClass; /** * @param containerClass */ public AbstractProjectLoadParticipant(Class<T> containerClass) { super(); this.containerClass = containerClass; } /** (inheritDoc) * @see org.goko.core.workspace.service.IProjectLoadParticipant#load(org.goko.core.workspace.io.XmlProjectContainer, org.goko.core.workspace.io.IProjectInputLocation, org.eclipse.core.runtime.IProgressMonitor) */ @Override public void load(XmlProjectContainer container, IProjectLocation input, IProgressMonitor monitor) throws GkException { loadContainer((T)container, input, monitor); } abstract protected void loadContainer(T container, IProjectLocation input, IProgressMonitor monitor) throws GkException ; public Class<T> getContainerClass() { return containerClass; } }