Class ViewMetadata


  • public abstract class ViewMetadata
    extends java.lang.Object

    ViewMetadata is reponsible for extracting and providing view parameter metadata from VDL views. Because ViewDeclarationLanguage.getViewMetadata(jakarta.faces.context.FacesContext, java.lang.String) is required to return null for Jakarta Server Pages views and non-null for views authored in Facelets for Jakarta Server Faces 2, this specification only applies to Facelets for Jakarta Server Faces 2.

    Since:
    2.0
    • Constructor Detail

      • ViewMetadata

        public ViewMetadata()
    • Method Detail

      • getViewId

        public abstract java.lang.String getViewId()

        Get the view id

        Returns:
        the view ID for which this ViewMetadata instance was created
      • createMetadataView

        public abstract UIViewRoot createMetadataView​(FacesContext context)

        Creates a new UIViewRoot containing only view parameter metadata. The processing of building this UIViewRoot with metadata should not cause any events to be published to the application. The implementation must call FacesContext.setProcessingEvents(boolean) passing false as the argument, at the beginning of the method, and pass true to the same method at the end. The implementation must ensure that this happens regardless of ant exceptions that may be thrown.

        Take note a compliant implementation has to ensure that:

        • the new UIViewRoot must be set as the FacesContext's viewRoot before applying the tag handlers, restoring the old FacesContext in a finally block.
        • The contents of the current UIViewRoot's ViewMap must be copied to the ViewMap of the new UIViewRoot before applying the tag handlers.
        • The UIImportConstants must be processed after applying the tag handlers.
        Parameters:
        context - the FacesContext for the current request
        Returns:
        a UIViewRoot containing only view parameter metadata (if any)
      • getViewParameters

        public static java.util.Collection<UIViewParameter> getViewParameters​(UIViewRoot root)

        Utility method to extract view metadata from the provided UIViewRoot.

        Parameters:
        root - the UIViewRoot from which the metadata will be extracted.
        Returns:
        a Collection of UIViewParameter instances. If the view has no metadata, the collection will be empty.
      • getViewActions

        public static java.util.Collection<UIViewAction> getViewActions​(UIViewRoot root)

        Utility method to extract view metadata from the provided UIViewRoot.

        Parameters:
        root - the UIViewRoot from which the metadata will be extracted.
        Returns:
        a Collection of UIViewAction instances. If the view has no metadata, the collection will be empty.
      • getImportConstants

        public static java.util.Collection<UIImportConstants> getImportConstants​(UIViewRoot root)

        Utility method to extract view metadata from the provided UIViewRoot.

        Parameters:
        root - The UIViewRoot from which the metadata will be extracted.
        Returns:
        A Collection of UIImportConstants instances. If the view has no metadata, the collection will be empty.
      • hasMetadata

        public static boolean hasMetadata​(UIViewRoot root)

        Utility method to determine if the the provided UIViewRoot has metadata. The default implementation will return true if the provided UIViewRoot has a facet named UIViewRoot.METADATA_FACET_NAME and that facet has children. It will return false otherwise.

        Parameters:
        root - the UIViewRoot from which the metadata will be extracted from
        Returns:
        true if the view has metadata, false otherwise.