blob: d8ba4c971812f51b13067251a2af414ac5dd5797 [file] [log] [blame]
/***************************************************************************************************
* Copyright (c) 2005, 2006 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
**************************************************************************************************/
package org.eclipse.jst.jsf.facesconfig.util;
import org.eclipse.emf.common.util.URI;
import org.eclipse.wst.common.componentcore.internal.impl.WTPResourceFactoryRegistry;
import org.eclipse.wst.common.internal.emf.resource.EMF2DOMRendererFactory;
import org.eclipse.wst.common.internal.emf.resource.Renderer;
import org.eclipse.wst.common.internal.emf.resource.RendererFactory;
import org.eclipse.wst.common.internal.emf.resource.TranslatorResource;
import org.eclipse.wst.common.internal.emf.resource.TranslatorResourceFactory;
/**
* May be referenced but should NOT be extended by clients
*
* @author xjiang
*
*/
public final class FacesConfigResourceFactory extends TranslatorResourceFactory
{
/**
* @return a faces config resource factory for use with faces-config
* files contained in JARs
*/
public static FacesConfigResourceFactory createResourceFactoryForJar()
{
return new FacesConfigResourceFactory(EMF2DOMRendererFactory.INSTANCE);
}
/**
* Construct a faces resource factory.
*
* @param rendererFactory
*/
protected FacesConfigResourceFactory(RendererFactory rendererFactory) {
super(rendererFactory);
}
/* (non-Javadoc)
* @see org.eclipse.wst.common.internal.emf.resource.TranslatorResourceFactory#createResource(org.eclipse.emf.common.util.URI)
*/
protected TranslatorResource createResource(URI uri, Renderer aRenderer) {
return new FacesConfigResourceImpl(uri, aRenderer);
}
/**
* Method registerDtds.
*/
public static void registerDtds() {
// TODO: should we be registering dtd/xsd here?
// how does MyEntityResolver in the resource affect this (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=154439)
}
/**
* register using the default renderer factory.
* @see #registerWith(String, FacesRendererFactory)
*/
public static void register() {
register((String)null);
}
/**
* Register the sFileName with the default renderer factory
* @param sFileName
*/
public static void register(String sFileName) {
registerWith(sFileName, FacesRendererFactory.INSTANCE);
}
/**
* Register myself with the Resource.Factory.Registry
* @param sFileName
* @param aRendererFactory
*/
private static void registerWith(String sFileName, FacesRendererFactory aRendererFactory) {
if (sFileName != null) {
WTPResourceFactoryRegistry.INSTANCE.registerLastFileSegment(sFileName, new FacesConfigResourceFactory(FacesRendererFactory.INSTANCE));
} else {
WTPResourceFactoryRegistry.INSTANCE.registerLastFileSegment("faces-config.xml", new FacesConfigResourceFactory(FacesRendererFactory.INSTANCE)); //$NON-NLS-1$
}
}
}