Package org.apache.myfaces.view.facelets
Class FaceletViewDeclarationLanguage
- java.lang.Object
-
- javax.faces.view.ViewDeclarationLanguage
-
- org.apache.myfaces.view.ViewDeclarationLanguageBase
-
- org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguageBase
-
- org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage
-
public class FaceletViewDeclarationLanguage extends FaceletViewDeclarationLanguageBase
This class represents the abstraction of Facelets as a ViewDeclarationLanguage.- Since:
- 2.0
- Version:
- $Revision$ $Date$
- Author:
- Simon Lessard (latest modification by $Author$)
-
-
Field Summary
Fields Modifier and Type Field Description static StringBUILDING_VIEW_METADATAstatic StringCACHED_COMPONENT_IDSKey used to cache component ids for the counterstatic StringCLEAN_TRANSIENT_BUILD_ON_RESTOREstatic StringDEFAULT_CHARACTER_ENCODINGstatic longDEFAULT_REFRESH_PERIODstatic longDEFAULT_REFRESH_PERIOD_PRODUCTIONstatic StringDYN_WRAPPERstatic StringGEN_MARK_IDstatic StringIS_BUILDING_INITIAL_STATE_KEY_ALIASstatic StringMARK_INITIAL_STATE_KEYMarker to indicate tag handlers the view currently being built is using partial state saving and it is necessary to call UIComponent.markInitialState after component instances are populated.static StringPARAM_ENCODINGConstant used by EncodingHandler to indicate the current encoding of the page being built, and indicate which one is the response encoding on getResponseEncoding(FacesContext, String) method.static StringREFRESH_TRANSIENT_BUILD_ON_PSSstatic StringREFRESHING_TRANSIENT_BUILDstatic StringREMOVING_COMPONENTS_BUILDstatic StringUSING_PSS_ON_THIS_VIEW-
Fields inherited from class javax.faces.view.ViewDeclarationLanguage
FACELETS_VIEW_DECLARATION_LANGUAGE_ID, JSP_VIEW_DECLARATION_LANGUAGE_ID
-
-
Constructor Summary
Constructors Constructor Description FaceletViewDeclarationLanguage(FacesContext context)FaceletViewDeclarationLanguage(FacesContext context, ViewDeclarationLanguageStrategy strategy)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbuildView(FacesContext context, UIViewRoot view)List<String>calculateResourceLibraryContracts(FacesContext context, String viewId)protected StringcalculateViewId(FacesContext context, String viewId)Calculates the effective view identifier for the specified raw view identifier.static voidcleanTransientBuildOnRestore(FacesContext context)protected CompilercreateCompiler(FacesContext context)Creates the Facelet page compiler.UIComponentcreateComponent(FacesContext context, String taglibURI, String tagName, Map<String,Object> attributes)protected FaceletFactorycreateFaceletFactory(FacesContext context, Compiler compiler)Creates a FaceletFactory instance using the specified compiler.protected ResponseWritercreateResponseWriter(FacesContext context)UIViewRootcreateView(FacesContext context, String viewId)Process the specification required algorithm that is generic to all PDL.BeanInfogetComponentMetadata(FacesContext context, Resource componentResource)retargetMethodExpressions(FacesContext, UIComponent) has some clues about the behavior of this methodFaceletFactorygetFaceletFactory()StringgetId()protected StringgetResponseContentType(FacesContext context, String orig)Generate the content typeprotected StringgetResponseEncoding(FacesContext context, String orig)Generate the encodingResourcegetScriptComponentResource(FacesContext context, Resource componentResource)StateManagementStrategygetStateManagementStrategy(FacesContext context, String viewId)ViewMetadatagetViewMetadata(FacesContext context, String viewId)Stream<String>getViews(FacesContext facesContext, String path, int maxDepth, ViewVisitOption... options)protected voidhandleFaceletNotFound(FacesContext context, String viewId)protected voidhandleRenderException(FacesContext context, Exception e)static booleanisBuildingViewMetadata(FacesContext context)Check if the current facelet applied is used to build view metadata.static booleanisCleanTransientBuildOnRestore(FacesContext context)static booleanisMarkInitialState(FacesContext context)static booleanisRefreshingTransientBuild(FacesContext context)static booleanisRefreshTransientBuildOnPSS(FacesContext context)static booleanisRefreshTransientBuildOnPSSAuto(FacesContext context)static booleanisRemovingComponentBuild(FacesContext context)static booleanisUsingPSSOnThisView(FacesContext context)protected voidloadDecorators(FacesContext context, Compiler compiler)Load the various decorators for Facelets.protected voidloadLibraries(FacesContext context, Compiler compiler)Load the various tag libraries for Facelets.protected voidloadOptions(FacesContext context, Compiler compiler)Load the various options for Facelets compiler.voidrenderView(FacesContext context, UIViewRoot view)UIViewRootrestoreView(FacesContext context, String viewId)voidretargetAttachedObjects(FacesContext context, UIComponent topLevelComponent, List<AttachedObjectHandler> handlerList)In short words, this method take care of "target" an "attached object".voidretargetMethodExpressions(FacesContext context, UIComponent topLevelComponent)protected voidsendSourceNotFound(FacesContext context, String message)Send a source not found to the client.booleanviewExists(FacesContext facesContext, String viewId)-
Methods inherited from class org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguageBase
activateDynamicComponentRefreshTransientBuild, dynamicComponentNeedsRefresh, getRenderKitFactory, getVisitContextFactory, isDynamicComponentNeedsRefresh, isDynamicComponentRefreshTransientBuildActive, isDynamicComponentRefreshTransientBuildActive, resetDynamicComponentNeedsRefreshFlag
-
Methods inherited from class javax.faces.view.ViewDeclarationLanguage
getViews
-
-
-
-
Field Detail
-
DEFAULT_REFRESH_PERIOD
public static final long DEFAULT_REFRESH_PERIOD
- See Also:
- Constant Field Values
-
DEFAULT_REFRESH_PERIOD_PRODUCTION
public static final long DEFAULT_REFRESH_PERIOD_PRODUCTION
- See Also:
- Constant Field Values
-
DEFAULT_CHARACTER_ENCODING
public static final String DEFAULT_CHARACTER_ENCODING
- See Also:
- Constant Field Values
-
PARAM_ENCODING
public static final String PARAM_ENCODING
Constant used by EncodingHandler to indicate the current encoding of the page being built, and indicate which one is the response encoding on getResponseEncoding(FacesContext, String) method.- See Also:
- Constant Field Values
-
BUILDING_VIEW_METADATA
public static final String BUILDING_VIEW_METADATA
- See Also:
- Constant Field Values
-
REFRESHING_TRANSIENT_BUILD
public static final String REFRESHING_TRANSIENT_BUILD
- See Also:
- Constant Field Values
-
REFRESH_TRANSIENT_BUILD_ON_PSS
public static final String REFRESH_TRANSIENT_BUILD_ON_PSS
- See Also:
- Constant Field Values
-
USING_PSS_ON_THIS_VIEW
public static final String USING_PSS_ON_THIS_VIEW
- See Also:
- Constant Field Values
-
REMOVING_COMPONENTS_BUILD
public static final String REMOVING_COMPONENTS_BUILD
- See Also:
- Constant Field Values
-
DYN_WRAPPER
public static final String DYN_WRAPPER
- See Also:
- Constant Field Values
-
GEN_MARK_ID
public static final String GEN_MARK_ID
- See Also:
- Constant Field Values
-
MARK_INITIAL_STATE_KEY
public static final String MARK_INITIAL_STATE_KEY
Marker to indicate tag handlers the view currently being built is using partial state saving and it is necessary to call UIComponent.markInitialState after component instances are populated.- See Also:
- Constant Field Values
-
IS_BUILDING_INITIAL_STATE_KEY_ALIAS
public static final String IS_BUILDING_INITIAL_STATE_KEY_ALIAS
- See Also:
- Constant Field Values
-
CLEAN_TRANSIENT_BUILD_ON_RESTORE
public static final String CLEAN_TRANSIENT_BUILD_ON_RESTORE
- See Also:
- Constant Field Values
-
CACHED_COMPONENT_IDS
public static final String CACHED_COMPONENT_IDS
Key used to cache component ids for the counter- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FaceletViewDeclarationLanguage
public FaceletViewDeclarationLanguage(FacesContext context)
-
FaceletViewDeclarationLanguage
public FaceletViewDeclarationLanguage(FacesContext context, ViewDeclarationLanguageStrategy strategy)
-
-
Method Detail
-
getId
public String getId()
- Overrides:
getIdin classViewDeclarationLanguage
-
viewExists
public boolean viewExists(FacesContext facesContext, String viewId)
- Overrides:
viewExistsin classViewDeclarationLanguage
-
buildView
public void buildView(FacesContext context, UIViewRoot view) throws IOException
- Specified by:
buildViewin classViewDeclarationLanguage- Throws:
IOException
-
getComponentMetadata
public BeanInfo getComponentMetadata(FacesContext context, Resource componentResource)
retargetMethodExpressions(FacesContext, UIComponent) has some clues about the behavior of this method- Specified by:
getComponentMetadatain classViewDeclarationLanguage
-
isBuildingViewMetadata
public static boolean isBuildingViewMetadata(FacesContext context)
Check if the current facelet applied is used to build view metadata.- Parameters:
context-- Returns:
-
isRefreshingTransientBuild
public static boolean isRefreshingTransientBuild(FacesContext context)
-
isRemovingComponentBuild
public static boolean isRemovingComponentBuild(FacesContext context)
-
isMarkInitialState
public static boolean isMarkInitialState(FacesContext context)
-
isRefreshTransientBuildOnPSS
public static boolean isRefreshTransientBuildOnPSS(FacesContext context)
-
isRefreshTransientBuildOnPSSAuto
public static boolean isRefreshTransientBuildOnPSSAuto(FacesContext context)
-
isCleanTransientBuildOnRestore
public static boolean isCleanTransientBuildOnRestore(FacesContext context)
-
cleanTransientBuildOnRestore
public static void cleanTransientBuildOnRestore(FacesContext context)
-
isUsingPSSOnThisView
public static boolean isUsingPSSOnThisView(FacesContext context)
-
retargetAttachedObjects
public void retargetAttachedObjects(FacesContext context, UIComponent topLevelComponent, List<AttachedObjectHandler> handlerList)
In short words, this method take care of "target" an "attached object".- The "attached object" is instantiated by a tag handler.
- The "target" is an object used as "marker", that exposes a List<UIComponent>
- Overrides:
retargetAttachedObjectsin classViewDeclarationLanguage
-
retargetMethodExpressions
public void retargetMethodExpressions(FacesContext context, UIComponent topLevelComponent)
- Overrides:
retargetMethodExpressionsin classViewDeclarationLanguage
-
getScriptComponentResource
public Resource getScriptComponentResource(FacesContext context, Resource componentResource)
- Specified by:
getScriptComponentResourcein classViewDeclarationLanguage
-
getStateManagementStrategy
public StateManagementStrategy getStateManagementStrategy(FacesContext context, String viewId)
- Specified by:
getStateManagementStrategyin classViewDeclarationLanguage
-
getViewMetadata
public ViewMetadata getViewMetadata(FacesContext context, String viewId)
- Specified by:
getViewMetadatain classViewDeclarationLanguage
-
renderView
public void renderView(FacesContext context, UIViewRoot view) throws IOException
- Specified by:
renderViewin classViewDeclarationLanguage- Throws:
IOException
-
createView
public UIViewRoot createView(FacesContext context, String viewId)
Process the specification required algorithm that is generic to all PDL.- Overrides:
createViewin classViewDeclarationLanguageBase
-
restoreView
public UIViewRoot restoreView(FacesContext context, String viewId)
- Overrides:
restoreViewin classViewDeclarationLanguageBase
-
calculateViewId
protected String calculateViewId(FacesContext context, String viewId)
Calculates the effective view identifier for the specified raw view identifier.- Specified by:
calculateViewIdin classViewDeclarationLanguageBase- Parameters:
context- le current FacesContextviewId- the raw view identifier- Returns:
- the effective view identifier
-
createCompiler
protected Compiler createCompiler(FacesContext context)
Creates the Facelet page compiler.- Parameters:
context- the current FacesContext- Returns:
- the application's Facelet page compiler
-
createFaceletFactory
protected FaceletFactory createFaceletFactory(FacesContext context, Compiler compiler)
Creates a FaceletFactory instance using the specified compiler.- Parameters:
context- the current FacesContextcompiler- the compiler to be used by the factory- Returns:
- the factory used by this VDL to load pages
-
createResponseWriter
protected ResponseWriter createResponseWriter(FacesContext context) throws IOException, FacesException
- Throws:
IOExceptionFacesException
-
getResponseContentType
protected String getResponseContentType(FacesContext context, String orig)
Generate the content type- Parameters:
context-orig-- Returns:
-
getResponseEncoding
protected String getResponseEncoding(FacesContext context, String orig)
Generate the encoding- Parameters:
context-orig-- Returns:
-
handleFaceletNotFound
protected void handleFaceletNotFound(FacesContext context, String viewId) throws FacesException, IOException
- Throws:
FacesExceptionIOException
-
handleRenderException
protected void handleRenderException(FacesContext context, Exception e) throws IOException, javax.el.ELException, FacesException
- Throws:
IOExceptionjavax.el.ELExceptionFacesException
-
loadDecorators
protected void loadDecorators(FacesContext context, Compiler compiler)
Load the various decorators for Facelets.- Parameters:
context- the current FacesContextcompiler- the page compiler
-
loadLibraries
protected void loadLibraries(FacesContext context, Compiler compiler)
Load the various tag libraries for Facelets.- Parameters:
context- the current FacesContextcompiler- the page compiler
-
loadOptions
protected void loadOptions(FacesContext context, Compiler compiler)
Load the various options for Facelets compiler. Currently only comment skipping is supported.- Parameters:
context- the current FacesContextcompiler- the page compiler
-
sendSourceNotFound
protected void sendSourceNotFound(FacesContext context, String message)
Send a source not found to the client. Although it can be considered ok in JSP mode, I think it's pretty lame to have this kind of requirement at VDL level considering VDL represents the page --> JSF tree link, not the transport layer required to send a SC_NOT_FOUND.- Specified by:
sendSourceNotFoundin classViewDeclarationLanguageBase- Parameters:
context- le current FacesContextmessage- the message associated with the error
-
calculateResourceLibraryContracts
public List<String> calculateResourceLibraryContracts(FacesContext context, String viewId)
- Overrides:
calculateResourceLibraryContractsin classViewDeclarationLanguage
-
getFaceletFactory
public FaceletFactory getFaceletFactory()
-
createComponent
public UIComponent createComponent(FacesContext context, String taglibURI, String tagName, Map<String,Object> attributes)
- Overrides:
createComponentin classViewDeclarationLanguage
-
getViews
public Stream<String> getViews(FacesContext facesContext, String path, int maxDepth, ViewVisitOption... options)
- Overrides:
getViewsin classViewDeclarationLanguage
-
-