package org.eclipse.jst.jsf.facelet.core.internal.facet; import java.util.Iterator; import java.util.Set; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.jst.jsf.core.internal.JSFCorePlugin; import org.eclipse.wst.common.project.facet.core.IFacetedProject; import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager; /** * Facelet facet constants and utilities * @author cbateman * */ public final class FaceletFacet { /** * Facelet facet id */ public final static String FACET_ID = "jsf.facelet"; //$NON-NLS-1$ /** * The id of the Facelet HTML view handler */ public final static String VIEW_HANDLER_ID = "org.eclipse.jst.jsf.facelet.core.html.viewhandler"; //$NON-NLS-1$ static final String COM_SUN_FACES_APPLICATION_WEBAPP_LIFECYCLE_LISTENER = "com.sun.faces.application.WebappLifecycleListener"; //$NON-NLS-1$ static final String COM_SUN_FACES_CONFIG_CONFIGURE_LISTENER = "com.sun.faces.config.ConfigureListener"; //$NON-NLS-1$ static final String XHTML = ".xhtml"; //$NON-NLS-1$ static final String JAVAX_FACES_DEFAULT_SUFFIX = "javax.faces.DEFAULT_SUFFIX"; //$NON-NLS-1$ private FaceletFacet() { // no external instantiation } /** * @param project * @return true if projec has the facelet facet installed. */ public static boolean hasFacet(final IProject project) { final IProjectFacetVersion facetVersion = getProjectFacet(project); if (facetVersion != null) { return true; } return false; } /** * Get the facet version for the project * * @param project * @return the project facet version or null if could not be found or if * project is not accessible */ @SuppressWarnings("unchecked") public static IProjectFacetVersion getProjectFacet(final IProject project) { // check for null or inaccessible project if (project != null && project.isAccessible()) { // check for Facelet facet on project try { final IFacetedProject facetedProject = ProjectFacetsManager .create(project); if (facetedProject != null) { final Set projectFacets = facetedProject.getProjectFacets(); final Iterator itProjectFacets = projectFacets.iterator(); while (itProjectFacets.hasNext()) { final IProjectFacetVersion projectFacetVersion = (IProjectFacetVersion) itProjectFacets .next(); if (FACET_ID.equals(projectFacetVersion .getProjectFacet().getId())) { return projectFacetVersion; } } } } catch (final CoreException ce) { // log error JSFCorePlugin.log(IStatus.ERROR, ce.getLocalizedMessage(), ce); } } return null; } }