blob: f793f81fe813bf395b8e87bccc0a407a840caeb8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Oracle Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Cameron Bateman/Oracle - initial API and implementation
*
********************************************************************************/
package org.eclipse.jst.jsf.context.symbol.source;
import org.eclipse.core.resources.IProject;
/**
* Default implementation of ISymbolSourceProviderFactory. Implementors may
* sub-class or create their own separate factory class.
*
* <p><b>Provisional API - subject to change</b></p>
*
* @author cbateman
*
*/
public abstract class AbstractSymbolSourceProviderFactory implements
ISymbolSourceProviderFactory
{
private IProject _project;
/**
* Default constructor used by extension manager to create this factory
*/
public AbstractSymbolSourceProviderFactory()
{
// do nothing
}
/* (non-Javadoc)
* @see org.eclipse.jst.jsf.context.symbol.source.ISymbolSourceProviderFactory#createInstance(org.eclipse.core.resources.IProject)
*/
public final ISymbolSourceProvider createInstance(IProject project)
{
_project = project;
return create(project);
}
/**
* Override this method to do specialization of provider creation
*
* @param project
* @return the symbol source provider created by the subclass
*/
protected abstract ISymbolSourceProvider create(IProject project);
/**
* @return the IProject that this source provider is associated with.
*/
protected final IProject getProject()
{
return _project;
}
}