package org.eclipse.jst.jsf.core.internal.project.facet; | |
import org.eclipse.core.resources.IProject; | |
import org.eclipse.jst.j2ee.model.IModelProvider; | |
import org.eclipse.jst.j2ee.model.ModelProviderManager; | |
import org.eclipse.jst.jsf.core.JSFVersion; | |
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; | |
/** | |
* Creates a new JSFUtil for a particular JSF project version. | |
* | |
* @author cbateman | |
* | |
*/ | |
public class JSFUtilFactory | |
{ | |
/** | |
* @param project | |
* @return the jsf version of the project if it is valid JSF faceted | |
* project or null otherwise. | |
*/ | |
public JSFUtils create(final IProject project) | |
{ | |
final JSFVersion jsfVersion = JSFVersion.valueOfProject(project); | |
if (jsfVersion != null) | |
{ | |
return create(jsfVersion, ModelProviderManager.getModelProvider(project)); | |
} | |
return null; | |
} | |
/** | |
* @param version | |
* @param modelProvider | |
* @return the JSF utils object for the version or null if none. | |
* @throw {@link IllegalArgumentException} if version is not related | |
* to a JSF facet. | |
*/ | |
public JSFUtils create(final IProjectFacetVersion version, final IModelProvider modelProvider) | |
{ | |
final JSFVersion jsfVersion = JSFVersion.valueOfFacetVersion(version); | |
if (jsfVersion != null) | |
{ | |
return create(jsfVersion, modelProvider); | |
} | |
return null; | |
} | |
/** | |
* @param version | |
* @param modelProvider | |
* @return the JSF utils object for the version or null if none. | |
*/ | |
public JSFUtils create(final JSFVersion version, final IModelProvider modelProvider) | |
{ | |
switch (version) | |
{ | |
case V1_0: | |
case V1_1: | |
return new JSFUtils11(modelProvider); | |
case V1_2: | |
return new JSFUtils12(modelProvider); | |
case V2_0: | |
return new JSFUtils20(modelProvider); | |
case V2_1: | |
return new JSFUtils21(modelProvider); | |
case V2_2: | |
return new JSFUtils22(modelProvider); | |
case V2_3: | |
return new JSFUtils23(modelProvider); | |
default: | |
throw new IllegalArgumentException("Unknown version: "+version); //$NON-NLS-1$ | |
} | |
} | |
} |