From 4c7408bc3a2f28851d0c94be4882b103bf29add3 Mon Sep 17 00:00:00 2001 From: melloware Date: Wed, 23 Oct 2024 15:08:34 -0400 Subject: [PATCH] Properly cleanse descriptions --- generator/src/data/jakarta/c-4.0.json | 6 +- generator/src/data/jakarta/c-4.1.json | 56 +- generator/src/data/jakarta/cc-4.0.json | 16 +- generator/src/data/jakarta/cc-4.1.json | 190 +- generator/src/data/jakarta/f-4.0.json | 18 +- generator/src/data/jakarta/f-4.1.json | 728 ++-- generator/src/data/jakarta/h-4.0.json | 108 +- generator/src/data/jakarta/h-4.1.json | 3454 ++++++++--------- generator/src/data/jakarta/ui-4.0.json | 16 +- generator/src/data/jakarta/ui-4.1.json | 116 +- .../src/data/omnifaces/omnifaces-3.0.json | 92 +- .../src/data/omnifaces/omnifaces-4.0.json | 96 +- .../primefaces-extensions-10.0.0.json | 12 +- .../primefaces-extensions-11.0.0.json | 12 +- .../primefaces-extensions-12.0.0.json | 16 +- .../primefaces-extensions-13.0.0.json | 16 +- .../primefaces-extensions-14.0.0.json | 16 +- generator/src/util/from-vdl.ts | 10 +- generator/src/util/from-xml.ts | 19 +- src/parse-engines/data/jakarta/c-4.0.json | 6 +- src/parse-engines/data/jakarta/c-4.1.json | 56 +- src/parse-engines/data/jakarta/cc-4.0.json | 16 +- src/parse-engines/data/jakarta/cc-4.1.json | 190 +- src/parse-engines/data/jakarta/f-4.0.json | 18 +- src/parse-engines/data/jakarta/f-4.1.json | 728 ++-- src/parse-engines/data/jakarta/h-4.0.json | 108 +- src/parse-engines/data/jakarta/h-4.1.json | 3454 ++++++++--------- src/parse-engines/data/jakarta/ui-4.0.json | 16 +- src/parse-engines/data/jakarta/ui-4.1.json | 116 +- .../data/omnifaces/omnifaces-3.0.json | 266 +- .../data/omnifaces/omnifaces-4.0.json | 298 +- .../data/primefaces/primefaces-10.0.0.json | 326 +- .../data/primefaces/primefaces-11.0.0.json | 302 +- .../data/primefaces/primefaces-12.0.0.json | 298 +- .../data/primefaces/primefaces-13.0.0.json | 266 +- .../data/primefaces/primefaces-8.0.0.json | 322 +- .../primefaces-extensions-10.0.0.json | 70 +- .../primefaces-extensions-11.0.0.json | 70 +- .../primefaces-extensions-12.0.0.json | 120 +- .../primefaces-extensions-13.0.0.json | 588 ++- .../primefaces-extensions-14.0.0.json | 16 +- 41 files changed, 6563 insertions(+), 6084 deletions(-) diff --git a/generator/src/data/jakarta/c-4.0.json b/generator/src/data/jakarta/c-4.0.json index a2ce508..e68d34e 100644 --- a/generator/src/data/jakarta/c-4.0.json +++ b/generator/src/data/jakarta/c-4.0.json @@ -13,7 +13,7 @@ }, { "name": "choose", - "description": "Simple conditional tag that establishes a context for mutually exclusive conditional operations, marked by and", + "description": "Simple conditional tag that establishes a context for mutually exclusive conditional operations, marked by and", "attribute": [] }, { @@ -84,12 +84,12 @@ }, { "name": "otherwise", - "description": "Subtag of that follows tags and runs only if all of the prior conditions evaluated to 'false'", + "description": "Subtag of that follows tags and runs only if all of the prior conditions evaluated to 'false'", "attribute": [] }, { "name": "set", - "description": "Sets the result of an expression evaluation based on the value of the attributes. If \"scope\" the is present, but has a zero length or is equal to the string \"page\", TagException is thrown with an informative error message, ensuring page location information is saved. This handler operates in one of two ways. The user has set \"var\", \"value\" and (optionally) \"scope\" attributes. The user has set \"target\", \"property\", and \"value\" attributes. The first case takes precedence over the second.", + "description": "Sets the result of an expression evaluation based on the value of the attributes. If \"scope\" the is present, but has a zero length or is equal to the string \"page\", TagException is thrown with an informative error message, ensuring page location information is saved. This handler operates in one of two ways. The user has set \"var\", \"value\" and (optionally) \"scope\" attributes. The user has set \"target\", \"property\", and \"value\" attributes. The first case takes precedence over the second.", "attribute": [ { "description": "Name of the exported scoped variable to hold the value specified in the action. The type of the scoped variable is whatever type the value expression evaluates to.", diff --git a/generator/src/data/jakarta/c-4.1.json b/generator/src/data/jakarta/c-4.1.json index ccf66cc..8f0e360 100644 --- a/generator/src/data/jakarta/c-4.1.json +++ b/generator/src/data/jakarta/c-4.1.json @@ -8,8 +8,8 @@ { "name": "var", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Name of the exported scoped variable for the\n exception thrown from a nested action. The type of the\n scoped variable is the type of the exception thrown." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Name of the exported scoped variable for the exception thrown from a nested action. The type of the scoped variable is the type of the exception thrown." } ] }, @@ -25,38 +25,38 @@ { "name": "items", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", "description": "Collection of items to iterate over." }, { "name": "end", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to int)", - "description": "If items specified:\n Iteration ends at the item located at the\n specified index (inclusive).\n If items not specified:\n Iteration ends when index reaches the value\n specified." + "type": "jakarta.el.ValueExpression (must evaluate to int)", + "description": "If items specified: Iteration ends at the item located at the specified index (inclusive). If items not specified: Iteration ends when index reaches the value specified." }, { "name": "var", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Name of the exported scoped variable for the\n current item of the iteration. This scoped\n variable has nested visibility. Its type depends\n on the object of the underlying collection." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Name of the exported scoped variable for the current item of the iteration. This scoped variable has nested visibility. Its type depends on the object of the underlying collection." }, { "name": "begin", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to int)", - "description": "If items specified:\n Iteration begins at the item located at the\n specified index. First item of the collection has\n index 0.\n If items not specified:\n Iteration begins with index set at the value\n specified." + "type": "jakarta.el.ValueExpression (must evaluate to int)", + "description": "If items specified: Iteration begins at the item located at the specified index. First item of the collection has index 0. If items not specified: Iteration begins with index set at the value specified." }, { "name": "step", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to int)", - "description": "Iteration will only process every step items of\n the collection, starting with the first one." + "type": "jakarta.el.ValueExpression (must evaluate to int)", + "description": "Iteration will only process every step items of the collection, starting with the first one." }, { "name": "varStatus", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Name of the exported scoped variable for the\n status of the iteration. Object exported is of type\n jakarta.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable\n has nested\n visibility." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Name of the exported scoped variable for the status of the iteration. Object exported is of type jakarta.servlet.jsp.jstl.core.LoopTagStatus. This scoped variable has nested visibility." } ] }, @@ -67,20 +67,20 @@ { "name": "test", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "The test condition that determines whether or\n not the body content should be processed." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "The test condition that determines whether or not the body content should be processed." }, { "name": "scope", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Scope for var." }, { "name": "var", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Name of the exported scoped variable for the\n resulting value of the test condition. The type\n of the scoped variable is Boolean." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Name of the exported scoped variable for the resulting value of the test condition. The type of the scoped variable is Boolean." } ] }, @@ -91,36 +91,36 @@ }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/c/", - "description": "Sets the result of an expression evaluation based on the\n value of the attributes. If \"scope\" the is present, but has a zero\n length or is equal to the string \"page\", TagException\n is\n thrown with an informative error message, ensuring page location\n information is saved. This handler operates in one of two ways.\n\n The user has set \"var\", \"value\" and (optionally)\n \"scope\" attributes. The user has set \"target\", \"property\", and\n \"value\"\n attributes. The first case takes precedence over the second.", + "description": "Sets the result of an expression evaluation based on the value of the attributes. If \"scope\" the is present, but has a zero length or is equal to the string \"page\", TagException is thrown with an informative error message, ensuring page location information is saved. This handler operates in one of two ways. The user has set \"var\", \"value\" and (optionally) \"scope\" attributes. The user has set \"target\", \"property\", and \"value\" attributes. The first case takes precedence over the second.", "attribute": [ { "name": "var", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Name of the exported scoped variable to hold the value\n specified in the action. The type of the scoped variable is\n whatever type the value expression evaluates to." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Name of the exported scoped variable to hold the value specified in the action. The type of the scoped variable is whatever type the value expression evaluates to." }, { "name": "target", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Target object whose property will be set. Must evaluate to\n a JavaBeans object with setter property property, or to a\n java.util.Map object." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Target object whose property will be set. Must evaluate to a JavaBeans object with setter property property, or to a java.util.Map object." }, { "name": "scope", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Scope for var." }, { "name": "value", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", "description": "Expression to be evaluated." }, { "name": "property", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Name of the property to be set in the target object." } ] @@ -132,8 +132,8 @@ { "name": "test", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "The test condition that determines whether or not the\n body content should be processed." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "The test condition that determines whether or not the body content should be processed." } ] } diff --git a/generator/src/data/jakarta/cc-4.0.json b/generator/src/data/jakarta/cc-4.0.json index 49ef181..97dff82 100644 --- a/generator/src/data/jakarta/cc-4.0.json +++ b/generator/src/data/jakarta/cc-4.0.json @@ -3,7 +3,7 @@ "component": [ { "name": "actionSource", - "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of ActionSource2 suitable for useas the target of attached objects in the using page.Any attached objects suitable for implementations ofActionSource2 may be attached to the composite component.Consider this excerpt from the using page:         The elements on lines 4, 7, and 10refer to the attached objects declared on lines 2, 3 and 4 below.       Most of the concepts from example content from also applies in the case of. Please see for a usageexample.", + "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of ActionSource2 suitable for useas the target of attached objects in the using page.Any attached objects suitable for implementations ofActionSource2 may be attached to the composite component.Consider this excerpt from the using page:         The elements on lines 4, 7, and 10refer to the attached objects declared on lines 2, 3 and 4 below.       Most of the concepts from example content from also applies in the case of. Please see for a usageexample.", "attribute": [ { "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object nested within a composite component. If the \"targets\" attribute is not specified, this value also represents the component ID of the target component within the that the ActionListener should be mapped to.", @@ -27,7 +27,7 @@ }, { "name": "attribute", - "description": "Declares an attribute that may be given to an instance of thecomposite component tag for this composite component. Theremay be zero or many of these inside of the section. This element may benested within other elements toconvey a usage contract that includes nested properties. Please see summarypage for a usage example. The top level component in which this element is ultimately nested must be a NamingContainer. There are certain component properties that must not be exposed using this element. The motivation for this restriction is that the mapping of markup attributes to component properties/attributes does not allow for these attributes to be set. The following properties must not be exposed using this element. binding id inView parent rendered rendererType transient", + "description": "Declares an attribute that may be given to an instance of thecomposite component tag for this composite component. Theremay be zero or many of these inside of the section. This element may benested within other elements toconvey a usage contract that includes nested properties. Please see summarypage for a usage example. The top level component in which this element is ultimately nested must be a NamingContainer. There are certain component properties that must not be exposed using this element. The motivation for this restriction is that the mapping of markup attributes to component properties/attributes does not allow for these attributes to be set. The following properties must not be exposed using this element. binding id inView parent rendered rendererType transient", "attribute": [ { "description": "If this attribute is not required, and a value is not supplied by the page author, use this as the default value.", @@ -54,7 +54,7 @@ "type": "boolean" }, { - "description": "Declares that this attribute must be a MethodExpressionwhose method signature is described by the value of this attribute. Thesignature must be described using fully qualified class names wherever atype is required. This attribute is mutually exclusive with the \"type\"attribute. If both attributes are present, the \"method-signature\"attribute is ignored. Provides the signature of the Java method. The syntax of the method-signature element is as follows (taken from function-signature in web-jsptaglibrary_2_1.xsd): MethodSignature ::= ReturnType S MethodName S? '(' S? Parameters? S? ')' ReturnType ::= Type MethodName ::= Identifier Parameters ::= Parameter | ( Parameter S? ',' S? Parameters ) Parameter ::= Type Where: Type is a basic type or a fully qualified Java class name (including package name), as per the 'Type' production in the Java Language Specification, Second Edition, Chapter 18. Identifier is a Java identifier, as per the 'Identifier' production in the Java Language Specification, Second Edition, Chapter 18. Example: java.lang.String nickName( java.lang.String, int )", + "description": "Declares that this attribute must be a MethodExpressionwhose method signature is described by the value of this attribute. Thesignature must be described using fully qualified class names wherever atype is required. This attribute is mutually exclusive with the \"type\"attribute. If both attributes are present, the \"method-signature\"attribute is ignored. Provides the signature of the Java method. The syntax of the method-signature element is as follows (taken from function-signature in web-jsptaglibrary_2_1.xsd): MethodSignature ::= ReturnType S MethodName S? '(' S? Parameters? S? ')' ReturnType ::= Type MethodName ::= Identifier Parameters ::= Parameter | ( Parameter S? ',' S? Parameters ) Parameter ::= Type Where: Type is a basic type or a fully qualified Java class name (including package name), as per the 'Type' production in the Java Language Specification, Second Edition, Chapter 18. Identifier is a Java identifier, as per the 'Identifier' production in the Java Language Specification, Second Edition, Chapter 18. Example: java.lang.String nickName( java.lang.String, int )", "name": "method-signature", "required": "false", "type": "java.lang.String" @@ -135,7 +135,7 @@ }, { "name": "editableValueHolder", - "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of EditableValueHolder suitablefor use as the target of attached objects in the usingpage. Any attached objects suitable for implementations ofEditableValueHolder may be attached to the compositecomponent.The example from still applies. Please see for a usageexample.", + "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of EditableValueHolder suitablefor use as the target of attached objects in the usingpage. Any attached objects suitable for implementations ofEditableValueHolder may be attached to the compositecomponent.The example from still applies. Please see for a usageexample.", "attribute": [ { "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object nested within a composite component. If the \"targets\" attribute is not specified, this value also represents the component ID of the target component within the that the to which the ActionListener should be mapped.", @@ -158,7 +158,7 @@ }, { "name": "facet", - "description": "Declares that this composite component supports a facet with the name given by the value of the \"name\" attribute. Please see for a usage example.", + "description": "Declares that this composite component supports a facet with the name given by the value of the \"name\" attribute. Please see for a usage example.", "attribute": [ { "description": "The name to display in a tool palette containing this component. The value of this attribute will be set as the value for this property on the composite component bean descriptor.", @@ -234,7 +234,7 @@ }, { "name": "interface", - "description": "This element declares the usage contract for a composite component. Optionally, and at the component author's discretion, this contract exposes the features of one or more inner components to the page author. The page author can work with the composite component as a single component whose feature set is the union of the features declared in the usage contract. For example, consider a composite component that implements the functionality of a \"login panel\". Such a component would likely have two text fields and one button. The user of such a component might like to do one or more of the following. Be able to listen for the ActionEvent on the button. In this case, a element is included in the usage contract that refers to the inner button in the section. Provide an \"action\" to invoke when the button is pressed. In this case, a element is included in the usage contract that refers to the inner button in the section and declares the proper method signature for an \"action\". Provide parameters to the composite component for labels and other rendering specific aspects of the composite component. In this case, one or more elements are included in the usage contract and those parameters are referred to in the section using EL expressions like #{cc.attrs.usernameLabel}, assuming usernameLabel is the name of one of the elements in the usage contract. Add ValueChangeListeners, Converters, or Validators to either or both text fields. In this case, a element is included in the usage contract that refers to the inner text field in the section. In the case of wanting to enable only adding a Converter (and not a ValueChangeListener or Validator, a element would be used. Add facet children to the login panel. In this case, a element is included in the usage contract that refers to the inner element in the section. For each of the behaviorial interfaces in section 3.2 \"Component Behavioral Interfaces\" of the Jakarta Faces Specification Document, there is a tag in the cc: library to nest inside of the section. If the section is not present in a VDL view, the contract will be inferred as described in the specification. There must be zero or one of these elements in a composite component VDL file. If a element does appear, there must be an accompanying element in the same VDL file. Nesting of composite components The implementation must support nesting of composite components. Specifically, it must be possible for the section of a composite component to act as the using page for another composite component. When a composite component exposes a behavioral interface to the using page, such as a , , or other behavioral interface, it must be possible to “propogate” the exposure of such an interface in the case of a nested composite component. The composite component author must ensure that the value of the name attributes exactly match at all levels of the nesting to enable this exposure to work. The implementation is not required to support “re-mapping” of names in a nested composite component. For example, consider this nested composite component. Using page   actionSourceOuter.xhtml: Outer composite component     actionSourceInner.xhtml: the composite component used within acomposite component.     The id of the online 6 of actionSourceInner.xhtml must match the name online 2 of that file (this is a standard requirement for all compositecomponents, nested or not). That id must also match thename on line 2 of actionSourceOuter.xhtml, and thefor on line 2 of the using page. The implementation must support any level of nesting as long as thefor, name, and id values matchup. Furthermore, the targets attribute is also valid foruse in this nested fashion. Naming containers within composite components Composite components are themselves naming containers so that anypossible id conflicts between inner components and components in theusing page are avoided. However, special care must be taken when usingnaming containers in the section. In such cases the value of the “name” attribute,or the values of the “targets” attribute must be used with aclientId relative to the top level component to expose anyattached object targets to the using page. For example: Using page   loginButton.xhtml           Because the button on line 8 resides within a form, it must bereferred to using a client id, relative to the top levelcomponent, in the \"targets\" attribute on line 2. Using a relativeclientId is required due to the semantics ofUIComponent.findComponent().", + "description": "This element declares the usage contract for a composite component. Optionally, and at the component author's discretion, this contract exposes the features of one or more inner components to the page author. The page author can work with the composite component as a single component whose feature set is the union of the features declared in the usage contract. For example, consider a composite component that implements the functionality of a \"login panel\". Such a component would likely have two text fields and one button. The user of such a component might like to do one or more of the following. Be able to listen for the ActionEvent on the button. In this case, a element is included in the usage contract that refers to the inner button in the section. Provide an \"action\" to invoke when the button is pressed. In this case, a element is included in the usage contract that refers to the inner button in the section and declares the proper method signature for an \"action\". Provide parameters to the composite component for labels and other rendering specific aspects of the composite component. In this case, one or more elements are included in the usage contract and those parameters are referred to in the section using EL expressions like #{cc.attrs.usernameLabel}, assuming usernameLabel is the name of one of the elements in the usage contract. Add ValueChangeListeners, Converters, or Validators to either or both text fields. In this case, a element is included in the usage contract that refers to the inner text field in the section. In the case of wanting to enable only adding a Converter (and not a ValueChangeListener or Validator, a element would be used. Add facet children to the login panel. In this case, a element is included in the usage contract that refers to the inner element in the section. For each of the behaviorial interfaces in section 3.2 \"Component Behavioral Interfaces\" of the Jakarta Faces Specification Document, there is a tag in the cc: library to nest inside of the section. If the section is not present in a VDL view, the contract will be inferred as described in the specification. There must be zero or one of these elements in a composite component VDL file. If a element does appear, there must be an accompanying element in the same VDL file. Nesting of composite components The implementation must support nesting of composite components. Specifically, it must be possible for the section of a composite component to act as the using page for another composite component. When a composite component exposes a behavioral interface to the using page, such as a , , or other behavioral interface, it must be possible to “propogate” the exposure of such an interface in the case of a nested composite component. The composite component author must ensure that the value of the name attributes exactly match at all levels of the nesting to enable this exposure to work. The implementation is not required to support “re-mapping” of names in a nested composite component. For example, consider this nested composite component. Using page   actionSourceOuter.xhtml: Outer composite component     actionSourceInner.xhtml: the composite component used within acomposite component.     The id of the online 6 of actionSourceInner.xhtml must match the name online 2 of that file (this is a standard requirement for all compositecomponents, nested or not). That id must also match thename on line 2 of actionSourceOuter.xhtml, and thefor on line 2 of the using page. The implementation must support any level of nesting as long as thefor, name, and id values matchup. Furthermore, the targets attribute is also valid foruse in this nested fashion. Naming containers within composite components Composite components are themselves naming containers so that anypossible id conflicts between inner components and components in theusing page are avoided. However, special care must be taken when usingnaming containers in the section. In such cases the value of the “name” attribute,or the values of the “targets” attribute must be used with aclientId relative to the top level component to expose anyattached object targets to the using page. For example: Using page   loginButton.xhtml           Because the button on line 8 resides within a form, it must bereferred to using a client id, relative to the top levelcomponent, in the \"targets\" attribute on line 2. Using a relativeclientId is required due to the semantics ofUIComponent.findComponent().", "attribute": [ { "description": "The component-type of the UIComponent that will serve as the composite component root for this composite component. The declared component-family for this component must be jakarta.faces.NamingContainer.", @@ -282,7 +282,7 @@ }, { "name": "renderFacet", - "description": "This element is used in the section. The facet withthe name equal to the value of the name attribute, given by the pageauthor in the using page, will be rendered at this point in thecomposite component VDL view. The implementation of this tag handler must insert a component with component-type jakarta.faces.Output and renderer-type jakarta.faces.CompositeFacet as a child at this point in the component tree. The implementation of this tag handler must store an attribute intothe created component's attribute map under the key given by the valueof the symbolic constant UIComponent.FACETS_KEY. The valuefor this key must be the evaluated value of the \"name\" attribute.", + "description": "This element is used in the section. The facet withthe name equal to the value of the name attribute, given by the pageauthor in the using page, will be rendered at this point in thecomposite component VDL view. The implementation of this tag handler must insert a component with component-type jakarta.faces.Output and renderer-type jakarta.faces.CompositeFacet as a child at this point in the component tree. The implementation of this tag handler must store an attribute intothe created component's attribute map under the key given by the valueof the symbolic constant UIComponent.FACETS_KEY. The valuefor this key must be the evaluated value of the \"name\" attribute.", "attribute": [ { "description": "The value of the name attribute as it must appear on an tag nested within the compositecomponent tag in the using page.", @@ -300,7 +300,7 @@ }, { "name": "valueHolder", - "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of ValueHolder suitable for useas the target of attached objects in the using page.Any attached objects suitable for implementations ofValueHolder may be attached to the composite component.Consider this excerpt from the using page:   Line 2 refers to the declaration on line 2 of foo.xhtml:     It is possible to declare that a single element should cause multiplecomponents within the section to be the targets of an attached object in theusing page. Assuming the same using page excerpt asabove, the revised VDL view is:       In this case, the \"targets\" attribute on the element, on line 2 above,replaces the \"name\" attribute in the previous example. \"targets\" is alist of ids of client ids (relative to the top level component)within the section. Inthis case, \"targets\" refers to the components on lines 6 and 7 above. Please see for a usageexample.", + "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of ValueHolder suitable for useas the target of attached objects in the using page.Any attached objects suitable for implementations ofValueHolder may be attached to the composite component.Consider this excerpt from the using page:   Line 2 refers to the declaration on line 2 of foo.xhtml:     It is possible to declare that a single element should cause multiplecomponents within the section to be the targets of an attached object in theusing page. Assuming the same using page excerpt asabove, the revised VDL view is:       In this case, the \"targets\" attribute on the element, on line 2 above,replaces the \"name\" attribute in the previous example. \"targets\" is alist of ids of client ids (relative to the top level component)within the section. Inthis case, \"targets\" refers to the components on lines 6 and 7 above. Please see for a usageexample.", "attribute": [ { "description": "The \"hidden\" flag is used to identify features that are intended only for tool use, and which should not be exposed to humans.", diff --git a/generator/src/data/jakarta/cc-4.1.json b/generator/src/data/jakarta/cc-4.1.json index 66a2cfc..5bd6781 100644 --- a/generator/src/data/jakarta/cc-4.1.json +++ b/generator/src/data/jakarta/cc-4.1.json @@ -3,322 +3,322 @@ "component": [ { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "Declares that the\ncomposite component whose contract is declared by the\n in which this element is nested\nexposes an implementation of ActionSource suitable for use\nas the target of attached objects in the using page.\nAny attached objects suitable for implementations of\nActionSource may be attached to the composite component.\nConsider this excerpt from the using page:\n The elements on lines 4, 7, and 10\nrefer to the attached objects declared on lines 2, 3 and 4 below. Most of the concepts from example content from \nalso applies in the case of\n. Please see for a usage\nexample.", + "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of ActionSource suitable for useas the target of attached objects in the using page.Any attached objects suitable for implementations ofActionSource may be attached to the composite component.Consider this excerpt from the using page: The elements on lines 4, 7, and 10refer to the attached objects declared on lines 2, 3 and 4 below. Most of the concepts from example content from also applies in the case of. Please see for a usageexample.", "attribute": [ { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object\n nested within a composite component. If the \"targets\" attribute is not specified,\n this value also represents the component ID of the target component within the\n that the \n ActionListener should be mapped to." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object nested within a composite component. If the \"targets\" attribute is not specified, this value also represents the component ID of the target component within the that the ActionListener should be mapped to." }, { "name": "hidden", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", "description": "The \"hidden\" flag is used to identify features that are intended only for tool use, and which should not be exposed to humans." }, { "name": "targets", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this must be a space (not tab) separated list of client\nids (relative to the top level component) of components within\nthe section. Space is\nused as the delimiter for compatibility with the IDREFS and NMTOKENS\ndata types from the XML Schema." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this must be a space (not tab) separated list of clientids (relative to the top level component) of components withinthe section. Space isused as the delimiter for compatibility with the IDREFS and NMTOKENSdata types from the XML Schema." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "Declares an attribute that may be given to an instance of the\ncomposite component tag for this composite component. There\nmay be zero or many of these inside of the\n section. This element may be\nnested within other elements to\nconvey a usage contract that includes nested properties. Please see summary\npage for a usage example. The top level component in which this element is\n ultimately nested must be a NamingContainer.\n There are certain component properties that must not be\n exposed using this element. The motivation for this\n restriction is that the mapping of markup attributes to\n component properties/attributes does not allow for these\n attributes to be set. The following properties must not be\n exposed using this element.", + "description": "Declares an attribute that may be given to an instance of thecomposite component tag for this composite component. Theremay be zero or many of these inside of the section. This element may benested within other elements toconvey a usage contract that includes nested properties. Please see summarypage for a usage example. The top level component in which this element is ultimately nested must be a NamingContainer. There are certain component properties that must not be exposed using this element. The motivation for this restriction is that the mapping of markup attributes to component properties/attributes does not allow for these attributes to be set. The following properties must not be exposed using this element.", "attribute": [ { "name": "default", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If this attribute is not required, and a\n value is not supplied by the page author, use this as\n the default value." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If this attribute is not required, and a value is not supplied by the page author, use this as the default value." }, { "name": "expert", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "Is this component only for expert users?\n The value of this attribute will be set as the value for\n this property on the composite component bean\n descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "Is this component only for expert users? The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "method-signature", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Declares that this attribute must be a MethodExpression\nwhose method signature is described by the value of this attribute. The\nsignature must be described using fully qualified class names wherever a\ntype is required. This attribute is mutually exclusive with the \"type\"\nattribute. If both attributes are present, the \"method-signature\"\nattribute is ignored. \n\n\t Provides the signature of the Java method. The syntax of\n\t the method-signature element is as follows (taken from\n\t function-signature in web-jsptaglibrary_2_1.xsd):\n\n\t\tMethodSignature ::= ReturnType S MethodName S?\n\t\t\t\t '(' S? Parameters? S? ')'\n\n ReturnType ::= Type\n\n\t\tMethodName ::= Identifier\n\n\t\tParameters ::= Parameter\n\t\t\t\t | ( Parameter S? ',' S? Parameters )\n\n Parameter ::= Type\n\n\t\tWhere:\n\n\n\n \t\t Type is a basic type or a fully qualified\n\t\t Java class name (including package name),\n\t\t as per the 'Type' production in the Java\n\t\t Language Specification, Second Edition,\n\t\t Chapter 18.\n\n Identifier is a Java identifier, as per\n\t\t the 'Identifier' production in the Java\n\t\t Language Specification, Second\n\t\t Edition, Chapter 18.\n\n\n\n\t Example:\n\n\t java.lang.String nickName( java.lang.String, int )" + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Declares that this attribute must be a MethodExpressionwhose method signature is described by the value of this attribute. Thesignature must be described using fully qualified class names wherever atype is required. This attribute is mutually exclusive with the \"type\"attribute. If both attributes are present, the \"method-signature\"attribute is ignored. Provides the signature of the Java method. The syntax of the method-signature element is as follows (taken from function-signature in web-jsptaglibrary_2_1.xsd):MethodSignature ::= ReturnType S MethodName S? '(' S? Parameters? S? ')' ReturnType ::= TypeMethodName ::= IdentifierParameters ::= Parameter | ( Parameter S? ',' S? Parameters ) Parameter ::= TypeWhere: Type is a basic type or a fully qualified Java class name (including package name), as per the 'Type' production in the Java Language Specification, Second Edition, Chapter 18. Identifier is a Java identifier, as per the 'Identifier' production in the Java Language Specification, Second Edition, Chapter 18. Example: java.lang.String nickName( java.lang.String, int )" }, { "name": "preferred", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "Is this a \"preferred\" component. The value\n of this attribute will be set as the value for this\n property on the composite component bean\n descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "Is this a \"preferred\" component. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "shortDescription", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A short description of the purpose of this\n component. The value of this attribute will be set as\n the value for this property on the composite\n component bean descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A short description of the purpose of this component. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "targets", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If this element has a method-signature attribute, the\nvalue of the targets attribute must be interpreted as a\nspace (not tab) separated list of client ids (relative to the top\nlevel component) of components within the\n section. Space is used as\nthe delimiter for compatibility with the IDREFS and NMTOKENS data types\nfrom the XML Schema. Each entry in the list must be interpreted as the\nid of an inner component to which the MethodExpression from\nthe composite component tag in the using page must be\napplied. If this element has a method-signature attribute,\nbut no targets attribute, the value of the\nname attribute is used as the single entry in the list. If\nthe value of the name attribute is not one\nof the special values listed in the description of the name\nattribute, targets (or its derived value) need not\ncorrespond to the id of an inner component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If this element has a method-signature attribute, thevalue of the targets attribute must be interpreted as aspace (not tab) separated list of client ids (relative to the toplevel component) of components within the section. Space is used asthe delimiter for compatibility with the IDREFS and NMTOKENS data typesfrom the XML Schema. Each entry in the list must be interpreted as theid of an inner component to which the MethodExpression fromthe composite component tag in the using page must beapplied. If this element has a method-signature attribute,but no targets attribute, the value of thename attribute is used as the single entry in the list. Ifthe value of the name attribute is not oneof the special values listed in the description of the nameattribute, targets (or its derived value) need notcorrespond to the id of an inner component." }, { "name": "displayName", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name to display in a tool palette\n containing this component. The value of this attribute will be set as\n the value for this property on the composite\n component bean descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name to display in a tool palette containing this component. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "hidden", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "The \"hidden\" flag is used to identify features that are intended only\n for tool use, and which should not be exposed to humans. The value of\n this attribute will be set as the value for this property on the\n composite component bean descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "The \"hidden\" flag is used to identify features that are intended only for tool use, and which should not be exposed to humans. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name of the attribute as it must appear on the composite\ncomponent tag in the using page. If the value of the\nname attribute is equal to (without the quotes)\n“action”, “actionListener”,\n“validator”, or “valueChangeListener”, the\naction described in ViewHandler.retargetMethodExpressions()\nmust be taken to handle the attribute. In these cases, the\nmethod-signature attribute, if present, must be ignored as\nits value is derived as described in\nretargetMethodExpressions()." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of the attribute as it must appear on the compositecomponent tag in the using page. If the value of thename attribute is equal to (without the quotes)“action”, “actionListener”,“validator”, or “valueChangeListener”, theaction described in ViewHandler.retargetMethodExpressions()must be taken to handle the attribute. In these cases, themethod-signature attribute, if present, must be ignored asits value is derived as described inretargetMethodExpressions()." }, { "name": "required", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "True if the page author must supply a value\n for this attribute. The default value is false." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "True if the page author must supply a value for this attribute. The default value is false." }, { "name": "targetAttributeName", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to \n java.lang.String\n )", - "description": "This attribute allows the name of the attribute exposed to the using\npage to differ from the one actually used in the implementation. For\nexample, consider a composite component that contains two buttons, one\nthat means \"submit\" and one that means \"cancel\". It is natural to want\nto declare two composite component attributes to allow these buttons to\nbe customized, for example, \"submitAction\" and \"cancelAction\". For both\nof these buttons, the method expression should be retargeted to the\ninner button's \"action\" attribute. This scenario would be expressed as\nfollows. \n\n\n\n  \n  \n  \n   \n\n\n  \n  \n" + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String )", + "description": "This attribute allows the name of the attribute exposed to the usingpage to differ from the one actually used in the implementation. Forexample, consider a composite component that contains two buttons, onethat means \"submit\" and one that means \"cancel\". It is natural to wantto declare two composite component attributes to allow these buttons tobe customized, for example, \"submitAction\" and \"cancelAction\". For bothof these buttons, the method expression should be retargeted to theinner button's \"action\" attribute. This scenario would be expressed asfollows." }, { "name": "type", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Declares that this attribute must be a ValueExpression\n whose expected type is given by the value of this attribute. If\n not\n specified, and no \"method-signature\" attribute is present,\n java.lang.Object is assumed. This\n attribute is mutually\n exclusive with the \"method-signature\" attribute. If both attributes are\n present, the\n \"method-signature\" attribute is ignored." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Declares that this attribute must be a ValueExpression whose expected type is given by the value of this attribute. If not specified, and no \"method-signature\" attribute is present, java.lang.Object is assumed. This attribute is mutually exclusive with the \"method-signature\" attribute. If both attributes are present, the \"method-signature\" attribute is ignored." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "Declares that the composite component whose contract is declared by\nthe in which this element is\nnested exposes an implementation of ClientBehaviorHolder\nsuitable for use as the target of attached objects in the\nusing page. Any attached objects suitable for implementations of\nClientBehaviorHolder may be attached to the composite\ncomponent.", + "description": "Declares that the composite component whose contract is declared bythe in which this element isnested exposes an implementation of ClientBehaviorHoldersuitable for use as the target of attached objects in theusing page. Any attached objects suitable for implementations ofClientBehaviorHolder may be attached to the compositecomponent.", "attribute": [ { "name": "default", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "If the evaluated value of this attribute is true, the page\nauthor may omit the the \"event\" attribute when specifying the behavior\nin the using page. This is analogous to \"action\" being the default\nevent for commandLink. The usage of this attribute assumes\nonly one clientBehavior is declared in this composite\ncomponent. If more than one is specified, only the first one is used in\nthe case of a using page with no event attribute." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "If the evaluated value of this attribute is true, the pageauthor may omit the the \"event\" attribute when specifying the behaviorin the using page. This is analogous to \"action\" being the defaultevent for commandLink. The usage of this attribute assumesonly one clientBehavior is declared in this compositecomponent. If more than one is specified, only the first one is used inthe case of a using page with no event attribute." }, { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object\n nested within a composite component. If the \"targets\" attribute is not specified,\n this value also represents the component ID of the target component within the\n that the \n to which the ActionListener should be mapped." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object nested within a composite component. If the \"targets\" attribute is not specified, this value also represents the component ID of the target component within the that the to which the ActionListener should be mapped." }, { "name": "event", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The evaluated value of this attribute will be passed as the first\nargument to the addClientBehavior() method on\nClientBehaviorHolder." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The evaluated value of this attribute will be passed as the firstargument to the addClientBehavior() method onClientBehaviorHolder." }, { "name": "targets", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this must be a space (not tab) separated list of client\nids (relative to the top level component) of components within\nthe section. Space is\nused as the delimiter for compatibility with the IDREFS and NMTOKENS\ndata types from the XML Schema." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this must be a space (not tab) separated list of clientids (relative to the top level component) of components withinthe section. Space isused as the delimiter for compatibility with the IDREFS and NMTOKENSdata types from the XML Schema." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "Declares that the\ncomposite component whose contract is declared by the\n in which this element is nested\nexposes an implementation of EditableValueHolder suitable\nfor use as the target of attached objects in the using\npage. Any attached objects suitable for implementations of\nEditableValueHolder may be attached to the composite\ncomponent.The example from \nstill applies.\n Please see for a usage\nexample.", + "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of EditableValueHolder suitablefor use as the target of attached objects in the usingpage. Any attached objects suitable for implementations ofEditableValueHolder may be attached to the compositecomponent.The example from still applies. Please see for a usageexample.", "attribute": [ { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The value of this attribute maps back to the \"for\" attribute on\n an attachable object\n nested within a composite component. If the \"targets\" attribute\n is not specified,\n this value also represents the component ID of the target\n component within the\n that the \n to which the ActionListener should be mapped." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object nested within a composite component. If the \"targets\" attribute is not specified, this value also represents the component ID of the target component within the that the to which the ActionListener should be mapped." }, { "name": "targets", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this must be a space (not tab) separated\n list of client\n ids (relative to the top level component)\n of components within\n the \n section. Space is\n used as the delimiter for compatibility with the IDREFS and\n NMTOKENS\n data types from the XML Schema." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this must be a space (not tab) separated list of client ids (relative to the top level component) of components within the section. Space is used as the delimiter for compatibility with the IDREFS and NMTOKENS data types from the XML Schema." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "The use of this tag has been deprecated in Faces 4.1, without replacement, and is subject to be removed in Faces 5.0.\n The reason is that the JSR-276 went dormant and therefore this tag has never been of use.", + "description": "The use of this tag has been deprecated in Faces 4.1, without replacement, and is subject to be removed in Faces 5.0. The reason is that the JSR-276 went dormant and therefore this tag has never been of use.", "attribute": [] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "Declares that this composite component supports a facet\n with the\n name given by the value of the \"name\" attribute. Please see \n for a usage\n example.", + "description": "Declares that this composite component supports a facet with the name given by the value of the \"name\" attribute. Please see for a usage example.", "attribute": [ { "name": "displayName", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name to display in a tool palette\n containing this component. The value of this attribute will be\n set as\n the value for this property on the composite\n component bean descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name to display in a tool palette containing this component. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "hidden", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "The \"hidden\" flag is used to identify features that are intended only \n for tool use, and which should not be exposed to humans." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "The \"hidden\" flag is used to identify features that are intended only for tool use, and which should not be exposed to humans." }, { "name": "preferred", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "Is this a \"preferred\" facet. The value\n of this attribute will be set as the value for this\n property on the composite component bean\n descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "Is this a \"preferred\" facet. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "shortDescription", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A short description of the purpose of this\n facet. The value of this attribute will be set as\n the value for this property on the composite\n component bean descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A short description of the purpose of this facet. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "expert", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "Is this facet only for expert users?\n The value of this attribute will be set as the value for\n this property on the composite component bean\n descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "Is this facet only for expert users? The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name of the attribute as it must appear\n on the composite component tag in the\n using page." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of the attribute as it must appear on the composite component tag in the using page." }, { "name": "required", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "True if the page author must supply a facet with this\n name." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "True if the page author must supply a facet with this name." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "Defines the implementation of the composite\n component. There must be zero or one of these in a\n composite component markup file. If a\n element appears,\n there must be a corresponding\n element. If no\n element appears,\n the element is\n optional.", + "description": "Defines the implementation of the composite component. There must be zero or one of these in a composite component markup file. If a element appears, there must be a corresponding element. If no element appears, the element is optional.", "attribute": [] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "This element is used in the\n \n section. Any child\n components or template text within the composite component tag in\n the\n using page will be re-parented into the composite component at the\n point\n indicated by this tag's placement within the\n \n section. The normal\n use-case for this element is to have only one occurrence within the\n \n section. Inserting\n multiple occurrences may cause duplicate id errors. The results are\n undefined if there are multiple occurrences of this element in the\n \n section.", + "description": "This element is used in the section. Any child components or template text within the composite component tag in the using page will be re-parented into the composite component at the point indicated by this tag's placement within the section. The normal use-case for this element is to have only one occurrence within the section. Inserting multiple occurrences may cause duplicate id errors. The results are undefined if there are multiple occurrences of this element in the section.", "attribute": [] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "The presence of this tag in\na section must cause the\nnamed facet to be taken from the facet map of the top level\ncomponent and inserted as a facet child of the component in which\nthis element is nested. The results are\nundefined if there are facets in the composite component tag in the\nusing page, but there is no correspondingly named occurrence of this\nelement in the \nsection.", + "description": "The presence of this tag ina section must cause thenamed facet to be taken from the facet map of the top levelcomponent and inserted as a facet child of the component in whichthis element is nested. The results areundefined if there are facets in the composite component tag in theusing page, but there is no correspondingly named occurrence of thiselement in the section.", "attribute": [ { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name of the facet child on the top level\n component which\n must be inserted as a facet child of the component in which this\n element\n is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of the facet child on the top level component which must be inserted as a facet child of the component in which this element is nested." }, { "name": "required", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "If true, and there is no such\n facet present on the top\n level component, a TagException must be\n thrown, containing\n the Location, the facet name, and a\n localized descriptive\n error message." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "If true, and there is no such facet present on the top level component, a TagException must be thrown, containing the Location, the facet name, and a localized descriptive error message." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "This\n element declares the usage contract for a composite\n component. Optionally, and at the component author's\n discretion, this contract exposes the features of one or\n more inner components to the page author. The page author\n can work with the composite component as a single component\n whose feature set is the union of the features declared in\n the usage contract. For example, consider a composite component that\n implements the functionality of a \"login panel\". Such a\n component would likely have two text fields and one button.\n The user of such a component might like to do one or more of\n the following. Be able to listen for the ActionEvent\n on the button. In this case, a\n element is\n included in the usage contract that refers to the inner\n button in the \n section. Provide an \"action\" to invoke when the button is pressed.\n\t In this case, a\n element is included\n in the usage contract that refers to the inner button in the\n section and\n declares the proper method signature for an \"action\". Provide parameters to the composite component for\n\t labels and other rendering specific aspects of the composite\n\t component. In this case, one or more\n elements are included\n in the usage contract and those parameters are referred to in\n the section\n using EL expressions like\n #{cc.attrs.usernameLabel},\n assuming usernameLabel is the name\n of one of the \n elements in the usage contract. Add ValueChangeListeners,\n\t Converters, or Validators to either\n\t or both text fields.\n\t In this case, a\n element is\n included in the usage contract that refers to the inner text\n field in the \n section. In the case of wanting to enable only adding a\n Converter (and not a\n ValueChangeListener or Validator, a\n element would be\n used. Add facet children to the login panel. In this case, a \n element is included in the usage contract that refers to the\n inner element in\n the section.\n For each of the behaviorial interfaces in\n section 3.2 \"Component Behavioral Interfaces\" of the Jakarta Faces Specification Document,\n there is a tag in the\n cc: library to nest inside of the\n section.\n If the section\n is not present in a VDL view, the contract will be\n inferred as described in the specification. There must be\n zero or one of these elements in a composite component VDL\n file. If a element\n does appear, there must be an accompanying\n element in the\n same VDL file. Nesting of composite components The implementation must support nesting of composite\n components. Specifically, it must be possible for the\n section of a\n composite component to act as the using page for\n another composite component. When a composite component\n exposes a behavioral interface to the using page,\n such as a ,\n ,\n or other\n behavioral interface, it must be possible to\n “propogate” the exposure of such an interface in\n the case of a nested composite component. The composite\n component author must ensure that the value of the\n name attributes exactly match at all levels of\n the nesting to enable this exposure to work. The\n implementation is not required to support\n “re-mapping” of names in a nested composite\n component. For example, consider this nested composite component. Using page actionSourceOuter.xhtml: Outer composite component actionSourceInner.xhtml: the composite component used within a\ncomposite component. The id of the on\nline 6 of actionSourceInner.xhtml must match the name on\nline 2 of that file (this is a standard requirement for all composite\ncomponents, nested or not). That id must also match the\nname on line 2 of actionSourceOuter.xhtml, and the\nfor on line 2 of the using page. The implementation must support any level of nesting as long as the\nfor, name, and id values match\nup. Furthermore, the targets attribute is also valid for\nuse in this nested fashion. Naming containers within composite components Composite components are themselves naming containers so that any\npossible id conflicts between inner components and components in the\nusing page are avoided. However, special care must be taken when using\nnaming containers in the \nsection. In such cases the value of the “name” attribute,\nor the values of the “targets” attribute must be used with a\nclientId relative to the top level component to expose any\nattached object targets to the using page. For example: Using page loginButton.xhtml Because the button on line 8 resides within a form, it must be\nreferred to using a client id, relative to the top level\ncomponent, in the \"targets\" attribute on line 2. Using a relative\nclientId is required due to the semantics of\nUIComponent.findComponent().", + "description": "This element declares the usage contract for a composite component. Optionally, and at the component author's discretion, this contract exposes the features of one or more inner components to the page author. The page author can work with the composite component as a single component whose feature set is the union of the features declared in the usage contract. For example, consider a composite component that implements the functionality of a \"login panel\". Such a component would likely have two text fields and one button. The user of such a component might like to do one or more of the following. Be able to listen for the ActionEvent on the button. In this case, a element is included in the usage contract that refers to the inner button in the section. Provide an \"action\" to invoke when the button is pressed. In this case, a element is included in the usage contract that refers to the inner button in the section and declares the proper method signature for an \"action\". Provide parameters to the composite component for labels and other rendering specific aspects of the composite component. In this case, one or more elements are included in the usage contract and those parameters are referred to in the section using EL expressions like #{cc.attrs.usernameLabel}, assuming usernameLabel is the name of one of the elements in the usage contract. Add ValueChangeListeners, Converters, or Validators to either or both text fields. In this case, a element is included in the usage contract that refers to the inner text field in the section. In the case of wanting to enable only adding a Converter (and not a ValueChangeListener or Validator, a element would be used. Add facet children to the login panel. In this case, a element is included in the usage contract that refers to the inner element in the section. For each of the behaviorial interfaces in section 3.2 \"Component Behavioral Interfaces\" of the Jakarta Faces Specification Document, there is a tag in the cc: library to nest inside of the section. If the section is not present in a VDL view, the contract will be inferred as described in the specification. There must be zero or one of these elements in a composite component VDL file. If a element does appear, there must be an accompanying element in the same VDL file. Nesting of composite components The implementation must support nesting of composite components. Specifically, it must be possible for the section of a composite component to act as the using page for another composite component. When a composite component exposes a behavioral interface to the using page, such as a , , or other behavioral interface, it must be possible to “propogate” the exposure of such an interface in the case of a nested composite component. The composite component author must ensure that the value of the name attributes exactly match at all levels of the nesting to enable this exposure to work. The implementation is not required to support “re-mapping” of names in a nested composite component. For example, consider this nested composite component. Using page actionSourceOuter.xhtml: Outer composite component actionSourceInner.xhtml: the composite component used within acomposite component. The id of the online 6 of actionSourceInner.xhtml must match the name online 2 of that file (this is a standard requirement for all compositecomponents, nested or not). That id must also match thename on line 2 of actionSourceOuter.xhtml, and thefor on line 2 of the using page. The implementation must support any level of nesting as long as thefor, name, and id values matchup. Furthermore, the targets attribute is also valid foruse in this nested fashion. Naming containers within composite components Composite components are themselves naming containers so that anypossible id conflicts between inner components and components in theusing page are avoided. However, special care must be taken when usingnaming containers in the section. In such cases the value of the “name” attribute,or the values of the “targets” attribute must be used with aclientId relative to the top level component to expose anyattached object targets to the using page. For example: Using page loginButton.xhtml Because the button on line 8 resides within a form, it must bereferred to using a client id, relative to the top levelcomponent, in the \"targets\" attribute on line 2. Using a relativeclientId is required due to the semantics ofUIComponent.findComponent().", "attribute": [ { "name": "componentType", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The component-type of the UIComponent\n that\n will serve as the composite component root\n for this composite\n component. The declared component-family\n for this\n component must be jakarta.faces.NamingContainer." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The component-type of the UIComponent that will serve as the composite component root for this composite component. The declared component-family for this component must be jakarta.faces.NamingContainer." }, { "name": "expert", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "Is this component only for expert users?\n The value of this attribute will be set as the value for\n this property on the composite component bean\n descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "Is this component only for expert users? The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "name", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name of this composite component.\n Advisory only. The real name is taken from the\n filename. The value of this attribute will be set as\n the value for this property on the composite\n component bean descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of this composite component. Advisory only. The real name is taken from the filename. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "shortDescription", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A short description of the purpose of this\n component. The value of this attribute will be set as\n the value for this property on the composite\n component bean descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A short description of the purpose of this component. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "displayName", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name to display in a tool palette\n containing this component. The value of this attribute will be\n set as\n the value for this property on the composite\n component bean descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name to display in a tool palette containing this component. The value of this attribute will be set as the value for this property on the composite component bean descriptor." }, { "name": "hidden", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "The \"hidden\" flag is used to identify features that are \n intended only for tool use, and which should not be exposed to humans." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "The \"hidden\" flag is used to identify features that are intended only for tool use, and which should not be exposed to humans." }, { "name": "preferred", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "Is this a \"preferred\" component. The value\n of this attribute will be set as the value for this\n property on the composite component bean\n descriptor." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "Is this a \"preferred\" component. The value of this attribute will be set as the value for this property on the composite component bean descriptor." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "This element is used in the\n section. The facet with\nthe name equal to the value of the name attribute, given by the page\nauthor in the using page, will be rendered at this point in the\ncomposite component VDL view. The implementation of this tag handler must insert a\n component with component-type\n jakarta.faces.Output and renderer-type\n jakarta.faces.CompositeFacet as a\n child at this point in the component tree. The implementation of this tag handler must store an attribute into\nthe created component's attribute map under the key given by the value\nof the symbolic constant UIComponent.FACETS_KEY. The value\nfor this key must be the evaluated value of the \"name\" attribute.", + "description": "This element is used in the section. The facet withthe name equal to the value of the name attribute, given by the pageauthor in the using page, will be rendered at this point in thecomposite component VDL view. The implementation of this tag handler must insert a component with component-type jakarta.faces.Output and renderer-type jakarta.faces.CompositeFacet as a child at this point in the component tree. The implementation of this tag handler must store an attribute intothe created component's attribute map under the key given by the valueof the symbolic constant UIComponent.FACETS_KEY. The valuefor this key must be the evaluated value of the \"name\" attribute.", "attribute": [ { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The value of the name attribute as it must appear on an\n tag nested within the composite\ncomponent tag in the using page." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The value of the name attribute as it must appear on an tag nested within the compositecomponent tag in the using page." }, { "name": "required", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "If true, and there is no such\n facet present on the top\n level component, a TagException must be\n thrown, containing\n the Location, the facet name, and a\n localized descriptive\n error message." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "If true, and there is no such facet present on the top level component, a TagException must be thrown, containing the Location, the facet name, and a localized descriptive error message." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/cc/", - "description": "Declares that the\ncomposite component whose contract is declared by the\n in which this element is nested\nexposes an implementation of ValueHolder suitable for use\nas the target of attached objects in the using page.\nAny attached objects suitable for implementations of\nValueHolder may be attached to the composite component.\nConsider this excerpt from the using page:\n Line 2 refers to the\n declaration on\n line 2 of foo.xhtml: It is possible to declare that a single\n element should cause multiple\ncomponents within the \nsection to be the targets of an attached object in the\nusing page. Assuming the same using page excerpt as\nabove, the revised VDL view is: In this case, the \"targets\" attribute on the\n element, on line 2 above,\nreplaces the \"name\" attribute in the previous example. \"targets\" is a\nlist of ids of client ids (relative to the top level component)\nwithin the section. In\nthis case, \"targets\" refers to the \ncomponents on lines 6 and 7 above. Please see for a usage\nexample.", + "description": "Declares that thecomposite component whose contract is declared by the in which this element is nestedexposes an implementation of ValueHolder suitable for useas the target of attached objects in the using page.Any attached objects suitable for implementations ofValueHolder may be attached to the composite component.Consider this excerpt from the using page: Line 2 refers to the declaration on line 2 of foo.xhtml: It is possible to declare that a single element should cause multiplecomponents within the section to be the targets of an attached object in theusing page. Assuming the same using page excerpt asabove, the revised VDL view is: In this case, the \"targets\" attribute on the element, on line 2 above,replaces the \"name\" attribute in the previous example. \"targets\" is alist of ids of client ids (relative to the top level component)within the section. Inthis case, \"targets\" refers to the components on lines 6 and 7 above. Please see for a usageexample.", "attribute": [ { "name": "hidden", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "The \"hidden\" flag is used to identify features that are \n intended only for tool use, and which should not be exposed to humans." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "The \"hidden\" flag is used to identify features that are intended only for tool use, and which should not be exposed to humans." }, { "name": "targets", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this must be a space (not tab) separated list of client\nids (relative to the top level component) of components within\nthe section. Space is\nused as the delimiter for compatibility with the IDREFS and NMTOKENS\ndata types from the XML Schema." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this must be a space (not tab) separated list of clientids (relative to the top level component) of components withinthe section. Space isused as the delimiter for compatibility with the IDREFS and NMTOKENSdata types from the XML Schema." }, { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object\n nested within a composite component. If the \"targets\" attribute is not specified,\n this value also represents the component ID of the target component within the\n that the \n ActionListener should be mapped to." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The value of this attribute maps back to the \"for\" attribute on an attachable object nested within a composite component. If the \"targets\" attribute is not specified, this value also represents the component ID of the target component within the that the ActionListener should be mapped to." } ] } diff --git a/generator/src/data/jakarta/f-4.0.json b/generator/src/data/jakarta/f-4.0.json index db99204..ef91657 100644 --- a/generator/src/data/jakarta/f-4.0.json +++ b/generator/src/data/jakarta/f-4.0.json @@ -27,7 +27,7 @@ }, { "name": "ajax", - "description": "Register an AjaxBehavior instance on one or more UIComponents implementing the ClientBehaviorHolder interface. This tag may be nested witin a single component (enabling Ajax for a single component), or it may be \"wrapped\" around multiple components (enabling Ajax for many components). The String value for ids specified for execute and render may be specified as a search expression as outlined in the JavaDocs for UIComponent.findComponent(). The implementation must resolve these ids as specified for UIComponent.findComponent(). For example, consider the following Facelets code.                           When the button is pressed, panel_1, in form_1 will be re-rendered, along with panel_2 in form_2.", + "description": "Register an AjaxBehavior instance on one or more UIComponents implementing the ClientBehaviorHolder interface. This tag may be nested witin a single component (enabling Ajax for a single component), or it may be \"wrapped\" around multiple components (enabling Ajax for many components). The String value for ids specified for execute and render may be specified as a search expression as outlined in the JavaDocs for UIComponent.findComponent(). The implementation must resolve these ids as specified for UIComponent.findComponent(). For example, consider the following Facelets code.                           When the button is pressed, panel_1, in form_1 will be re-rendered, along with panel_2 in form_2.", "attribute": [ { "description": "If less than delay milliseconds elapses between calls to request() only the most recent one is sent and all other requests are discarded. If this option is not specified, or if the value of delay is the literal string 'none' without the quotes, no delay is used.", @@ -270,7 +270,7 @@ "method-signature": "public void listener(jakarta.faces.event.ComponentSystemEvent event) throws jakarta.faces.event.AbortProcessingException" }, { - "description": "Name of the event for which to install a listener. The following table lists the valid values for this attribute, and the corresponding event type for which the listener action is registered. value for \"type\" tagattribute Type of event sent to listener method preRenderComponent jakarta.faces.event.PreRenderComponentEvent preRenderView jakarta.faces.event.PreRenderViewEvent postAddToView jakarta.faces.event.PostAddToViewEvent preValidate jakarta.faces.event.PreValidateEvent postValidate jakarta.faces.event.PostValidateEvent In addition to these values, the fully qualified class name of anyjava class that extendsjakarta.faces.event.ComponentSystemEvent may be used as thevalue of the \"type\" attribute. Also, the @jakarta.faces.event.NamedEvent annotation maybe attached to any java class that extendsjakarta.faces.event.ComponentSystemEvent. This enables thatevent to be referenced from this attribute, as descibed in the javadocsfor @NamedEvent.", + "description": "Name of the event for which to install a listener. The following table lists the valid values for this attribute, and the corresponding event type for which the listener action is registered. value for \"type\" tagattribute Type of event sent to listener method preRenderComponent jakarta.faces.event.PreRenderComponentEvent preRenderView jakarta.faces.event.PreRenderViewEvent postAddToView jakarta.faces.event.PostAddToViewEvent preValidate jakarta.faces.event.PreValidateEvent postValidate jakarta.faces.event.PostValidateEvent In addition to these values, the fully qualified class name of anyjava class that extendsjakarta.faces.event.ComponentSystemEvent may be used as thevalue of the \"type\" attribute. Also, the @jakarta.faces.event.NamedEvent annotation maybe attached to any java class that extendsjakarta.faces.event.ComponentSystemEvent. This enables thatevent to be referenced from this attribute, as descibed in the javadocsfor @NamedEvent.", "name": "type", "required": "true", "type": "java.lang.String" @@ -279,7 +279,7 @@ }, { "name": "facet", - "description": "Register a named facet on the UIComponent associated with the closest parent UIComponent tag. When the facet contains more than one child the children will be automatically put in a container UIPanel.", + "description": "Register a named facet on the UIComponent associated with the closest parent UIComponent tag. When the facet contains more than one child the children will be automatically put in a container UIPanel.", "attribute": { "description": "Name of the facet to be created.", "name": "name", @@ -323,7 +323,7 @@ }, { "name": "metadata", - "description": "Declare the metadata facet for this view. This must be a child of the . This tag must reside within the top level XHTML file for the given viewId, or in a template client, but not in a template. The implementation must insure that the direct child of the facet is a UIPanel, even if there is only one child of the facet. The implementation must set the id of the UIPanel to be the value of the UIViewRoot.METADATA_FACET_NAME symbolic constant. The implementation must allow templating for this element according to the following pattern. template client XHTML view, view01.xhtml                                        

The big news stories of the day

   
Note line 4. The page author must ensure that the element does not appear on a template or included page. It must reside on the root page that corresponds to the viewId. The template page, template.xhtml                      
           
The page author is not required to use templating, but if they do, it must be done as shown above, (or with in a similar manner).", + "description": "Declare the metadata facet for this view. This must be a child of the . This tag must reside within the top level XHTML file for the given viewId, or in a template client, but not in a template. The implementation must insure that the direct child of the facet is a UIPanel, even if there is only one child of the facet. The implementation must set the id of the UIPanel to be the value of the UIViewRoot.METADATA_FACET_NAME symbolic constant. The implementation must allow templating for this element according to the following pattern. template client XHTML view, view01.xhtml                                        

The big news stories of the day

   
Note line 4. The page author must ensure that the element does not appear on a template or included page. It must reside on the root page that corresponds to the viewId. The template page, template.xhtml                      
           
The page author is not required to use templating, but if they do, it must be done as shown above, (or with in a similar manner).", "attribute": [] }, { @@ -336,7 +336,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Flag enabling or disabling the inclusion of the parameter. This flag is consulted by renderers that consider the UIParameter component associated with this during their rendering. Such renderers include jakarta.faces.Output jakarta.faces.Link and jakarta.faces.OutcomeTarget jakarta.faces.Link.", + "description": "Flag enabling or disabling the inclusion of the parameter. This flag is consulted by renderers that consider the UIParameter component associated with this during their rendering. Such renderers include jakarta.faces.Output jakarta.faces.Link and jakarta.faces.OutcomeTarget jakarta.faces.Link.", "name": "disable", "type": "boolean" }, @@ -502,7 +502,7 @@ "type": "java.lang.Boolean" }, { - "description": "Value expression pointing at any Collection or array. The member elements may be instances of SelectItem or any Java Object. In the case where the member elements are plain Java Objects, several additional attributes must be used by the page author to correctly identify the data to the enclosing UISelectOne or UISelectMany component, as shown in the following example.   In the preceding example, thevalue attribute on line 1 points to aCollection. HobbitBean isjust a regular Java Object (POJO) that conforms to JavaBeans namingconventions for its properties. The value attribute online 2 points to a List, though it couldjust as well point to a Collection, array, orjakarta.faces.model.DataModel. The attributes on lines 3through 9, inclusive, leverage the fact that the value is a collectionof POJOs.", + "description": "Value expression pointing at any Collection or array. The member elements may be instances of SelectItem or any Java Object. In the case where the member elements are plain Java Objects, several additional attributes must be used by the page author to correctly identify the data to the enclosing UISelectOne or UISelectMany component, as shown in the following example.   In the preceding example, thevalue attribute on line 1 points to aCollection. HobbitBean isjust a regular Java Object (POJO) that conforms to JavaBeans namingconventions for its properties. The value attribute online 2 points to a List, though it couldjust as well point to a Collection, array, orjakarta.faces.model.DataModel. The attributes on lines 3through 9, inclusive, leverage the fact that the value is a collectionof POJOs.", "name": "value", "type": "java.lang.Object" }, @@ -571,7 +571,7 @@ }, { "name": "setPropertyActionListener", - "description": "Register an ActionListener instance on the UIComponent associated with the closest parent UIComponent tag. This actionListener will cause the value given by the \"value\" attribute to be set into the ValueExpression given by the \"target\" attribute. The implementation of this tag creates a special ActionListener instance and registers it on the ActionSource associated with our most immediate surrounding instance of a tag whose implementation class is a subclass of UIComponentTag. This tag creates no output to the page currently being created. The ActionListener instance created and installed by this tag has the following behavior and contract. Only create and register the ActionListener instance the first time the component for this tag is created The \"target\" and \"value\" tag attributes are ValueExpression instances and are stored unevaluated as instance variables of the listener. When the listener executes, perform the following: Call getValue() on the \"value\" ValueExpression. If value of the \"value\" expression is null, call setValue() on the \"target\" ValueExpression with the null value. If the value of the \"value\" expression is not null, call getType() on the \"value\" and \"target\" ValueExpressions to determine their property types. Coerce the value of the \"value\" expression to the \"target\" expression value type following the Expression Language coercion rules. Call setValue() on the \"target\" ValueExpression with the resulting value. If either coercion or the execution of setValue() fails throw an AbortProcessingException.", + "description": "Register an ActionListener instance on the UIComponent associated with the closest parent UIComponent tag. This actionListener will cause the value given by the \"value\" attribute to be set into the ValueExpression given by the \"target\" attribute. The implementation of this tag creates a special ActionListener instance and registers it on the ActionSource associated with our most immediate surrounding instance of a tag whose implementation class is a subclass of UIComponentTag. This tag creates no output to the page currently being created. The ActionListener instance created and installed by this tag has the following behavior and contract. Only create and register the ActionListener instance the first time the component for this tag is created The \"target\" and \"value\" tag attributes are ValueExpression instances and are stored unevaluated as instance variables of the listener. When the listener executes, perform the following: Call getValue() on the \"value\" ValueExpression. If value of the \"value\" expression is null, call setValue() on the \"target\" ValueExpression with the null value. If the value of the \"value\" expression is not null, call getType() on the \"value\" and \"target\" ValueExpressions to determine their property types. Coerce the value of the \"value\" expression to the \"target\" expression value type following the Expression Language coercion rules. Call setValue() on the \"target\" ValueExpression with the resulting value. If either coercion or the execution of setValue() fails throw an AbortProcessingException.", "attribute": [ { "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested.", @@ -791,7 +791,7 @@ }, { "name": "validateWholeBean", - "description": "Support multi-field validation by enabling class-level bean validation on CDI based backing beans. This feature causes a temporary copy of the bean referenced by the value attribute, for the sole purpose of populating the bean with field values already validated by and then performing class-level validation on the copy. Regardless of the result of the class-level validation, the copy is discarded. This feature must explicitly be enabled by setting the application parameter specified in the javadoc for the symbolic constant jakarta.faces.validator.BeanValidator.ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAME. If this parameter is not set, or is set to false, this tag must be a no-op. A non-normative example follows the specification of the feature. At a high level, the feature provides for a UIInput subclass that maintains its own special private Validator that uses information from one or more s to perform class-level bean validation. For discussion, this special Validator is called the wholeBeanValidator. This tag must be backed by a UIInput component with the following specializations. Override getSubmittedValue() to return a non-null non empty String. This allows UIInput.validate() to call wholeBeanValidator.validate(). Override setConverter() to be a no-op. It does not make sense to allow a converter to be installed. Override addValidator() to be a no-op unless the argument is an instance of wholeBeanValidator. It does not make sense to allow additional validators to be installed. Override validate() to take the following actions. If the feature is not enabled, return immediately. If the wholeBeanValidator has not yet been installed, instantiate and pass it to this.addValidator(). Call super.validate(). The wholeBeanValidator must have a validate() method that performs the following actions. Due to the above specification, this method will only ever be passed the special UIInput component. Resolve the value of the component to its Object. Assume that this value is the bean whose properties are intended to be populated by components whose values are each validated by tags. For discussion, this bean is called the candidate bean and the properties and their respective values are called the candidate values. If the candidate bean cannot be referenced, return immediately from validate(). Use the information recorded by each of those tags to ensure that none of the candidate values are invalid. If any of them are invalid, return immediately from validate(). This ensures class-level validation is only performed on an instance whose fields are all individually valid. Otherwise it can be assumed that all field-level validations for this class-level validation have passed. Class-level bean validation must operate on a sufficiently populated bean instance. This differs from Faces field-level validation, which prevents beans from being populated with invalid values. To accomodate this difference, the candidate bean must be copied, populated with the already-validated candidate values, and then subjected to class-level validation. The copying must proceed in the following order. Invoke the newInstance() method on the bean's Class. If this throws any Exception, swallow it and continue. If the bean implements Serializable, use that to copy the bean instance. Otherwise, if the bean implements Cloneable, clone the bean instance. Otherwise, if the bean has a copy constructor, use that to copy the bean instance. If none of these techniques yields a copy, throw FacesException. Populate the copied bean with the candidate values. Obtain a reference to a jakarta.validation.Validator instance using the same steps described in the javadoc for jakarta.faces.validator.BeanValidator.validate(). Let the instance be called beanValidator for discussion. Obtain the value of the validationGroups attribute using the same steps described in the javadoc for jakarta.faces.validator.BeanValidator.validate(). If this value is not present or not valid, throw FacesException. Call the validate method on beanValidator, passing the populated copied bean and the validation groups as arguments. The copied bean can be discarded at this point. If the returned Set is non-empty, for each element in the Set, create a FacesMessage where the summary and detail are the return from calling ConstraintViolation.getMessage(). Capture all such FacesMessage instances into a Collection and pass them to ValidatorException. Using information recorded by the tag(s), call setValid(false) on all of the components whose values contributed to this class-level validation. This is essential to prevent the invalid value from being set into the model during the update model values phase. Finally, throw the exception. This tag must be placed in the component tree after all of the fields that are to be included in the multi-field validation. If this precondition is not met, the results of applying this tag are unspecified. This tag must be used in concert with and Bean Validation. Here is a brief example of the common case of ensuring two password fields are individually valid and also both the same. The feature requires the use of the validationGroups attribute on all of the tags and the tag. First, the ConstraintValidator implementation. public class PasswordValidator implements ConstraintValidator { @Override public void initialize(Password constraintAnnotation) { } @Override public boolean isValid(PasswordHolder value, ConstraintValidatorContext context) { boolean result; result = value.getPassword1().equals(value.getPassword2()); return result; } } Note that a PasswordHolder instance is passed to the isValid() method. This method will only be called if the individual properties of the PasswordHolder are valid. This fact allows the isValid() method to inspect the properties and perform effective class-level validtion. Next, the Constraint. @Constraint(validatedBy=PasswordValidator.class)@Target(TYPE)@Retention(RUNTIME)@interface Password { String message() default \"Password fields must match\"; Class[] groups() default {}; Class[] payload() default {};} Now the backing bean constrained by this Constraint. Note the use of groups. Note the fact that the bean implements Cloneable. @Named@RequestScoped@Password(groups = PasswordValidationGroup.class)public class BackingBean implements PasswordHolder, Cloneable { private String password1; private String password2; public BackingBean() { password1=\"\"; password2=\"\"; } @Override protected Object clone() throws CloneNotSupportedException { BackingBean other = (BackingBean) super.clone(); other.setPassword1(this.getPassword1()); other.setPassword2(this.getPassword2()); return other; } @NotNull(groups=PasswordValidationGroup.class) @Size(max=16, min=8, message=\"Password must be between 8 and 16 characters long\", groups = PasswordValidationGroup.class) @Override public String getPassword1() { return password1; } public void setPassword1(String password1) { this.password1 = password1; } @NotNull(groups=PasswordValidationGroup.class) @Size(max=16, min=8, message=\"Password must be between 8 and 16 characters long\", groups = PasswordValidationGroup.class) @Override public String getPassword2() { return password2; } public void setPassword2(String password2) { this.password2 = password2; } } Finally, the Facelets view. ", + "description": "Support multi-field validation by enabling class-level bean validation on CDI based backing beans. This feature causes a temporary copy of the bean referenced by the value attribute, for the sole purpose of populating the bean with field values already validated by and then performing class-level validation on the copy. Regardless of the result of the class-level validation, the copy is discarded. This feature must explicitly be enabled by setting the application parameter specified in the javadoc for the symbolic constant jakarta.faces.validator.BeanValidator.ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAME. If this parameter is not set, or is set to false, this tag must be a no-op. A non-normative example follows the specification of the feature. At a high level, the feature provides for a UIInput subclass that maintains its own special private Validator that uses information from one or more s to perform class-level bean validation. For discussion, this special Validator is called the wholeBeanValidator. This tag must be backed by a UIInput component with the following specializations. Override getSubmittedValue() to return a non-null non empty String. This allows UIInput.validate() to call wholeBeanValidator.validate(). Override setConverter() to be a no-op. It does not make sense to allow a converter to be installed. Override addValidator() to be a no-op unless the argument is an instance of wholeBeanValidator. It does not make sense to allow additional validators to be installed. Override validate() to take the following actions. If the feature is not enabled, return immediately. If the wholeBeanValidator has not yet been installed, instantiate and pass it to this.addValidator(). Call super.validate(). The wholeBeanValidator must have a validate() method that performs the following actions. Due to the above specification, this method will only ever be passed the special UIInput component. Resolve the value of the component to its Object. Assume that this value is the bean whose properties are intended to be populated by components whose values are each validated by tags. For discussion, this bean is called the candidate bean and the properties and their respective values are called the candidate values. If the candidate bean cannot be referenced, return immediately from validate(). Use the information recorded by each of those tags to ensure that none of the candidate values are invalid. If any of them are invalid, return immediately from validate(). This ensures class-level validation is only performed on an instance whose fields are all individually valid. Otherwise it can be assumed that all field-level validations for this class-level validation have passed. Class-level bean validation must operate on a sufficiently populated bean instance. This differs from Faces field-level validation, which prevents beans from being populated with invalid values. To accomodate this difference, the candidate bean must be copied, populated with the already-validated candidate values, and then subjected to class-level validation. The copying must proceed in the following order. Invoke the newInstance() method on the bean's Class. If this throws any Exception, swallow it and continue. If the bean implements Serializable, use that to copy the bean instance. Otherwise, if the bean implements Cloneable, clone the bean instance. Otherwise, if the bean has a copy constructor, use that to copy the bean instance. If none of these techniques yields a copy, throw FacesException. Populate the copied bean with the candidate values. Obtain a reference to a jakarta.validation.Validator instance using the same steps described in the javadoc for jakarta.faces.validator.BeanValidator.validate(). Let the instance be called beanValidator for discussion. Obtain the value of the validationGroups attribute using the same steps described in the javadoc for jakarta.faces.validator.BeanValidator.validate(). If this value is not present or not valid, throw FacesException. Call the validate method on beanValidator, passing the populated copied bean and the validation groups as arguments. The copied bean can be discarded at this point. If the returned Set is non-empty, for each element in the Set, create a FacesMessage where the summary and detail are the return from calling ConstraintViolation.getMessage(). Capture all such FacesMessage instances into a Collection and pass them to ValidatorException. Using information recorded by the tag(s), call setValid(false) on all of the components whose values contributed to this class-level validation. This is essential to prevent the invalid value from being set into the model during the update model values phase. Finally, throw the exception. This tag must be placed in the component tree after all of the fields that are to be included in the multi-field validation. If this precondition is not met, the results of applying this tag are unspecified. This tag must be used in concert with and Bean Validation. Here is a brief example of the common case of ensuring two password fields are individually valid and also both the same. The feature requires the use of the validationGroups attribute on all of the tags and the tag. First, the ConstraintValidator implementation. public class PasswordValidator implements ConstraintValidator { @Override public void initialize(Password constraintAnnotation) { } @Override public boolean isValid(PasswordHolder value, ConstraintValidatorContext context) { boolean result; result = value.getPassword1().equals(value.getPassword2()); return result; } } Note that a PasswordHolder instance is passed to the isValid() method. This method will only be called if the individual properties of the PasswordHolder are valid. This fact allows the isValid() method to inspect the properties and perform effective class-level validtion. Next, the Constraint. @Constraint(validatedBy=PasswordValidator.class)@Target(TYPE)@Retention(RUNTIME)@interface Password { String message() default \"Password fields must match\"; Class[] groups() default {}; Class[] payload() default {};} Now the backing bean constrained by this Constraint. Note the use of groups. Note the fact that the bean implements Cloneable. @Named@RequestScoped@Password(groups = PasswordValidationGroup.class)public class BackingBean implements PasswordHolder, Cloneable { private String password1; private String password2; public BackingBean() { password1=\"\"; password2=\"\"; } @Override protected Object clone() throws CloneNotSupportedException { BackingBean other = (BackingBean) super.clone(); other.setPassword1(this.getPassword1()); other.setPassword2(this.getPassword2()); return other; } @NotNull(groups=PasswordValidationGroup.class) @Size(max=16, min=8, message=\"Password must be between 8 and 16 characters long\", groups = PasswordValidationGroup.class) @Override public String getPassword1() { return password1; } public void setPassword1(String password1) { this.password1 = password1; } @NotNull(groups=PasswordValidationGroup.class) @Size(max=16, min=8, message=\"Password must be between 8 and 16 characters long\", groups = PasswordValidationGroup.class) @Override public String getPassword2() { return password2; } public void setPassword2(String password2) { this.password2 = password2; } } Finally, the Facelets view. ", "attribute": [ { "description": "A boolean value enabling or disabling this validation component.", @@ -821,7 +821,7 @@ }, { "name": "validator", - "description": "Register a named Validator instance on the UIComponent associated with the closest parent UIComponent tag. Usage outside of an EditableValueHolder parent If this element is nested within a UIComponent tag that has other UIComponent children, the validator will be automatically added to all the child components as well as this one. The implementation must ensure this occurs even if the parent of this element is not an instance of EditableValueHolder.", + "description": "Register a named Validator instance on the UIComponent associated with the closest parent UIComponent tag. Usage outside of an EditableValueHolder parent If this element is nested within a UIComponent tag that has other UIComponent children, the validator will be automatically added to all the child components as well as this one. The implementation must ensure this occurs even if the parent of this element is not an instance of EditableValueHolder.", "attribute": [ { "description": "A ValueExpression that evaluates to an object that implements the jakarta.faces.validator.Validator interface.", diff --git a/generator/src/data/jakarta/f-4.1.json b/generator/src/data/jakarta/f-4.1.json index 9084668..15be014 100644 --- a/generator/src/data/jakarta/f-4.1.json +++ b/generator/src/data/jakarta/f-4.1.json @@ -3,199 +3,199 @@ "component": [ { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register an ActionListener instance on the\n UIComponent associated with the closest parent UIComponent\n tag.", + "description": "Register an ActionListener instance on the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.event.ActionListener)", - "description": "Value binding expression that evaluates to an object that\n implements jakarta.faces.event.ActionListener." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.event.ActionListener)", + "description": "Value binding expression that evaluates to an object that implements jakarta.faces.event.ActionListener." }, { "name": "type", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Fully qualified Java class name of an ActionListener to be\n created and registered." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Fully qualified Java class name of an ActionListener to be created and registered." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register an\n AjaxBehavior instance on one or more UIComponents implementing\n the ClientBehaviorHolder interface. This tag may be nested\n witin a single component (enabling Ajax for a single component),\n or it may be \"wrapped\" around multiple components (enabling Ajax\n for many components). The String value for ids\n specified for execute and render may be specified as a search\n expression as outlined in the JavaDocs for\n UIComponent.findComponent(). The implementation\n must resolve these ids as specified for\n UIComponent.findComponent(). For example, consider\n the following Facelets code. When the button is pressed,\n panel_1, in form_1 will be re-rendered, along with panel_2 in\n form_2.", + "description": "Register an AjaxBehavior instance on one or more UIComponents implementing the ClientBehaviorHolder interface. This tag may be nested witin a single component (enabling Ajax for a single component), or it may be \"wrapped\" around multiple components (enabling Ajax for many components). The String value for ids specified for execute and render may be specified as a search expression as outlined in the JavaDocs for UIComponent.findComponent(). The implementation must resolve these ids as specified for UIComponent.findComponent(). For example, consider the following Facelets code. When the button is pressed, panel_1, in form_1 will be re-rendered, along with panel_2 in form_2.", "attribute": [ { "name": "delay", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If less than\n delay milliseconds elapses between calls to\n request() only the most recent one is sent and all other\n requests are discarded. If this option is not specified, or if the\n value of delay is the literal string 'none'\n without the quotes, no delay is used." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If less than delay milliseconds elapses between calls to request() only the most recent one is sent and all other requests are discarded. If this option is not specified, or if the value of delay is the literal string 'none' without the quotes, no delay is used." }, { "name": "event", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A String or\n ValueExpression (that evalulates to a String) identifying the type of event \n the Ajax action will apply to. If specified, it must be one of the \n events supported by the component the Ajax behavior is being applied to. \n For HTML components this would be the set of supported DOM events for the\n component, plus \"action\" for Faces ActionSource components and \"valueChange\"\n for Faces EditableValueHolder components. If not specified, the default \n event is determined for the component. The DOM event name is the actual DOM\n event name (for example: \"click\") as opposed to (for example: \"onclick\")." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A String or ValueExpression (that evalulates to a String) identifying the type of event the Ajax action will apply to. If specified, it must be one of the events supported by the component the Ajax behavior is being applied to. For HTML components this would be the set of supported DOM events for the component, plus \"action\" for Faces ActionSource components and \"valueChange\" for Faces EditableValueHolder components. If not specified, the default event is determined for the component. The DOM event name is the actual DOM event name (for example: \"click\") as opposed to (for example: \"onclick\")." }, { "name": "immediate", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "If \"true\" behavior events\n generated from this behavior\n are broadcast during Apply Request Values phase. Otherwise, the\n events will be\n broadcast during Invoke Aplications phase" + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "If \"true\" behavior events generated from this behavior are broadcast during Apply Request Values phase. Otherwise, the events will be broadcast during Invoke Aplications phase" }, { "name": "onerror", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name of the JavaScript\n function that will handle errors." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of the JavaScript function that will handle errors." }, { "name": "render", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.util.Collection)", - "description": "Evaluates to\n Collection. The search expressions to\n components that will participate in the \"render\" portion\n of the Request Processing Lifecycle. See the javadoc for\n SearchKeywordResolver for the complete list of\n keywords. If a literal is specified the identifiers must\n be space delimited. If not specified, the\n default value of \"@none\" is assumed. For example, @this\n clientIdOne clientIdTwo.\n \n When nested within a composite component,\n and the value contains or implies the keyword @this,\n then the keyword must be remapped to the client ID of the associated ,\n else if the value is not an absolute search expression,\n then it must be reinterpreted relative to the location of the declaration." + "type": "jakarta.el.ValueExpression (must evaluate to java.util.Collection)", + "description": "Evaluates to Collection. The search expressions to components that will participate in the \"render\" portion of the Request Processing Lifecycle. See the javadoc for SearchKeywordResolver for the complete list of keywords. If a literal is specified the identifiers must be space delimited. If not specified, the default value of \"@none\" is assumed. For example, @this clientIdOne clientIdTwo. When nested within a composite component, and the value contains or implies the keyword @this, then the keyword must be remapped to the client ID of the associated , else if the value is not an absolute search expression, then it must be reinterpreted relative to the location of the declaration." }, { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A value of \"true\" indicates\n the\n AjaxBehavior should not be rendered. A value of \"false\"\n indicates\n the AjaxBehavior should be rendered. \"false\" is the default." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A value of \"true\" indicates the AjaxBehavior should not be rendered. A value of \"false\" indicates the AjaxBehavior should be rendered. \"false\" is the default." }, { "name": "execute", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.util.Collection)", - "description": "Evaluates to\n Collection. This is a space separated list of\n search expressions to\n components that will participate in the \"execute\"\n portion of the Request Processing Lifecycle. See the javadoc for\n SearchKeywordResolver for the complete list of\n keywords. If a literal is specified the ids must be\n space delimited. If\n not specified, the default value of \"@this\" is assumed. For\n example, @this clientIdOne clientIdTwo.\n\n When nested within a composite component,\n and the value contains or implies the keyword @this,\n then the keyword must be remapped to the targets attribute of the associated declaration, if any,\n else if the value is not an absolute search expression,\n then it must be reinterpreted relative to the location of the declaration." + "type": "jakarta.el.ValueExpression (must evaluate to java.util.Collection)", + "description": "Evaluates to Collection. This is a space separated list of search expressions to components that will participate in the \"execute\" portion of the Request Processing Lifecycle. See the javadoc for SearchKeywordResolver for the complete list of keywords. If a literal is specified the ids must be space delimited. If not specified, the default value of \"@this\" is assumed. For example, @this clientIdOne clientIdTwo. When nested within a composite component, and the value contains or implies the keyword @this, then the keyword must be remapped to the targets attribute of the associated declaration, if any, else if the value is not an absolute search expression, then it must be reinterpreted relative to the location of the declaration." }, { "name": "listener", "required": "false", - "type": "jakarta.el.MethodExpression\n \n (signature must match public void\n processAjaxBehavior(jakarta.faces.event.AjaxBehaviorEvent event)\n throws jakarta.faces.event.AbortProcessingException\n )", - "description": "Method expression referencing\n a method\n that will be called when an AjaxBehaviorEvent has been\n broadcast for the listener." + "type": "jakarta.el.MethodExpression (signature must match public void processAjaxBehavior(jakarta.faces.event.AjaxBehaviorEvent event) throws jakarta.faces.event.AbortProcessingException )", + "description": "Method expression referencing a method that will be called when an AjaxBehaviorEvent has been broadcast for the listener." }, { "name": "onevent", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name of the JavaScript\n function that will handle UI events." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of the JavaScript function that will handle UI events." }, { "name": "resetValues", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Reset specific input values.\n Interpret the value of the render attribute as\n a space separated list of client identifiers suitable for\n passing directly to UIViewRoot.resetValues().\n The implementation must cause an ActionListener\n to be attached to the ActionSource component\n in which this tag is nested that calls\n UIViewRoot.resetValues() passing the value of\n the render attribute as the argument." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Reset specific input values. Interpret the value of the render attribute as a space separated list of client identifiers suitable for passing directly to UIViewRoot.resetValues(). The implementation must cause an ActionListener to be attached to the ActionSource component in which this tag is nested that calls UIViewRoot.resetValues() passing the value of the render attribute as the argument." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Add an attribute to the UIComponent associated with the closest\n parent UIComponent tag.", + "description": "Add an attribute to the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "name", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "The name of the component attribute to be set." }, { "name": "value", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", "description": "The value of the component attribute to be set." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Add attributes to the UIComponent associated with the closest\n parent UIComponent tag. \n For each Map.Entry in the Map\n referenced by the value attribute of this tag, take the following action.\n If parent.getAttributes().containsKey(entry.getKey()) returns \n true, take no action for this entry. Otherwise, if \n entry.getValue() is a ValueExpression call \n parent.setValueExpression(entry.getKey(), entry.getValue()).\n Otherwise, call parent.getAttributes.put(entry.getKey(), entry.getValue()).", + "description": "Add attributes to the UIComponent associated with the closest parent UIComponent tag. For each Map.Entry in the Map referenced by the value attribute of this tag, take the following action. If parent.getAttributes().containsKey(entry.getKey()) returns true, take no action for this entry. Otherwise, if entry.getValue() is a ValueExpression call parent.setValueExpression(entry.getKey(), entry.getValue()). Otherwise, call parent.getAttributes.put(entry.getKey(), entry.getValue()).", "attribute": [ { "name": "value", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.util.Map)", - "description": "An EL ValueExpression that evaluates to a Map." + "type": "jakarta.el.ValueExpression (must evaluate to java.util.Map)", + "description": "An EL ValueExpression that evaluates to a Map." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register a\n DateTimeConverter instance on the UIComponent associated\n with the closest parent UIComponent tag.", + "description": "Register a DateTimeConverter instance on the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.convert.DateTimeConverter)", - "description": "A ValueExpression that evaluates to an instance of\n jakarta.faces.convert.DateTimeConverter." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.convert.DateTimeConverter)", + "description": "A ValueExpression that evaluates to an instance of jakarta.faces.convert.DateTimeConverter." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "pattern", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Custom formatting pattern which determines how the\n date/time string should be formatted and parsed." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Custom formatting pattern which determines how the date/time string should be formatted and parsed." }, { "name": "timeZone", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "Time zone in which to interpret any time information in the date\n String. Value must be either a ValueExpression that evaluates to\n a java.util.TimeZone instance, or a String that is a timezone ID\n as described in the javadocs for\n java.util.TimeZone.getTimeZone()." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "Time zone in which to interpret any time information in the date String. Value must be either a ValueExpression that evaluates to a java.util.TimeZone instance, or a String that is a timezone ID as described in the javadocs for java.util.TimeZone.getTimeZone()." }, { "name": "dateStyle", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Predefined\n formatting style which determines how the date component\n of a date string is to be formatted and parsed. Applied\n only if type is \"date\", \"both\", \"localDate\",\n \"localDateTime\", or \"zonedDateTime\". Valid values\n are \"default\", \"short\", \"medium\", \"long\", and \"full\".\n Default value is \"default\". If a java.time \n formatter is being used, yet the dateStyle is set to \"default\", \n the value \"medium\" is assumed." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Predefined formatting style which determines how the date component of a date string is to be formatted and parsed. Applied only if type is \"date\", \"both\", \"localDate\", \"localDateTime\", or \"zonedDateTime\". Valid values are \"default\", \"short\", \"medium\", \"long\", and \"full\". Default value is \"default\". If a java.time formatter is being used, yet the dateStyle is set to \"default\", the value \"medium\" is assumed." }, { "name": "locale", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "Locale whose predefined styles for dates and times are used\n during formatting or parsing. If not specified, the Locale\n returned by FacesContext.getViewRoot().getLocale() will be used.\n Value must be either a VB expression that evaluates to a\n java.util.Locale instance, or a String that is valid to pass as\n the first argument to the constructor java.util.Locale(String\n language, String country). The empty string is passed as the\n second argument." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "Locale whose predefined styles for dates and times are used during formatting or parsing. If not specified, the Locale returned by FacesContext.getViewRoot().getLocale() will be used. Value must be either a VB expression that evaluates to a java.util.Locale instance, or a String that is valid to pass as the first argument to the constructor java.util.Locale(String language, String country). The empty string is passed as the second argument." }, { "name": "timeStyle", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Predefined \n formatting style which determines how the time component of a \n date string is to be formatted and\n parsed. Applied only if type is \"time\", \"both\",\n \"localTime\" or \n \"offsetTime\".\n Valid values are \"default\", \"short\", \"medium\", \"long\",\n and \"full\". Default value is \"default\". If a java.time \n formatter is being used, yet the timeStyle is set to \"default\", \n the value \"medium\" is assumed." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Predefined formatting style which determines how the time component of a date string is to be formatted and parsed. Applied only if type is \"time\", \"both\", \"localTime\" or \"offsetTime\". Valid values are \"default\", \"short\", \"medium\", \"long\", and \"full\". Default value is \"default\". If a java.time formatter is being used, yet the timeStyle is set to \"default\", the value \"medium\" is assumed." }, { "name": "type", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Specifies what\n contents the string value will be formatted to include, or\n parsed expecting. Valid values are \"date\", \"time\",\n \"both\", \"localDate\",\n \"localDateTime\", \"localTime\", \"offsetTime\",\n \"offsetDateTime\", and \"zonedDateTime\". The values starting\n with \"local\", \"offset\" and \"zoned\" correspond to Java SE 8\n Date Time API classes in package java.time with\n the name derived by upper casing the first letter. For\n example, java.time.LocalDate for the value\n \"localDate\". Default value is \"date\"." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Specifies what contents the string value will be formatted to include, or parsed expecting. Valid values are \"date\", \"time\", \"both\", \"localDate\", \"localDateTime\", \"localTime\", \"offsetTime\", \"offsetDateTime\", and \"zonedDateTime\". The values starting with \"local\", \"offset\" and \"zoned\" correspond to Java SE 8 Date Time API classes in package java.time with the name derived by upper casing the first letter. For example, java.time.LocalDate for the value \"localDate\". Default value is \"date\"." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register a named Converter instance on the UIComponent\n associated with the closest parent UIComponent tag.", + "description": "Register a named Converter instance on the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.convert.Converter)", - "description": "A ValueExpression that evaluates to an object that\n implements jakarta.faces.convert.Converter." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.convert.Converter)", + "description": "A ValueExpression that evaluates to an object that implements jakarta.faces.convert.Converter." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "converterId", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Converter identifier of the Converter instance to be\n created and registered." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Converter identifier of the Converter instance to be created and registered." } ] }, @@ -206,1069 +206,1069 @@ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.convert.NumberConverter)", - "description": "A ValueExpression that evaluates to an instance of\n jakarta.faces.convert.NumberConverter." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.convert.NumberConverter)", + "description": "A ValueExpression that evaluates to an instance of jakarta.faces.convert.NumberConverter." }, { "name": "currencySymbol", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Currency symbol, applied only when formatting\n currencies." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Currency symbol, applied only when formatting currencies." }, { "name": "groupingUsed", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Flag specifying whether formatted output will\n contain grouping separators. Expressions must\n evaluate to a boolean. Default value\n is true." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Flag specifying whether formatted output will contain grouping separators. Expressions must evaluate to a boolean. Default value is true." }, { "name": "locale", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "Locale\n whose\n predefined styles for numbers are used during formatting\n and parsing. If not specified, the Locale returned by\n FacesContext.getViewRoot().getLocale() will be used.\n Expressions must evaluate to a java.util.Locale or a String that is valid to\n pass as the first argument to the constructor\n java.util.Locale(String language, String country). The\n empty string is passed as the second argument." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "Locale whose predefined styles for numbers are used during formatting and parsing. If not specified, the Locale returned by FacesContext.getViewRoot().getLocale() will be used. Expressions must evaluate to a java.util.Locale or a String that is valid to pass as the first argument to the constructor java.util.Locale(String language, String country). The empty string is passed as the second argument." }, { "name": "maxIntegerDigits", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Integer)", - "description": "Maximum number of digits that will be formatted\n in the integer portion of the output. Expressions\n must evaluate to an int." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Integer)", + "description": "Maximum number of digits that will be formatted in the integer portion of the output. Expressions must evaluate to an int." }, { "name": "minIntegerDigits", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Integer)", - "description": "Minimum number of digits that will be formatted\n in the integer portion of the output. Expressions\n must evaluate to an int." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Integer)", + "description": "Minimum number of digits that will be formatted in the integer portion of the output. Expressions must evaluate to an int." }, { "name": "type", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Specifies how the number string will be formatted\n and parsed. Valid values are \"number\", \"currency\",\n and \"percent\". Default value is \"number\"." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Specifies how the number string will be formatted and parsed. Valid values are \"number\", \"currency\", and \"percent\". Default value is \"number\"." }, { "name": "currencyCode", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "ISO 4217 currency code, applied only when\n formatting currencies." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "ISO 4217 currency code, applied only when formatting currencies." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "integerOnly", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Flag specifying whether only the integer part\n of the value will be formatted and parsed.\n Expressions must evaluate to a boolean.\n Default value is false." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Flag specifying whether only the integer part of the value will be formatted and parsed. Expressions must evaluate to a boolean. Default value is false." }, { "name": "maxFractionDigits", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Integer)", - "description": "Maximum number of digits that will be formatted\n in the fractional portion of the output. Expressions\n must evaluate to an int." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Integer)", + "description": "Maximum number of digits that will be formatted in the fractional portion of the output. Expressions must evaluate to an int." }, { "name": "minFractionDigits", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Integer)", - "description": "Minimum number of digits that will be formatted\n in the fractional portion of the output. Expressions\n must evaluate to an int." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Integer)", + "description": "Minimum number of digits that will be formatted in the fractional portion of the output. Expressions must evaluate to an int." }, { "name": "pattern", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Custom formatting pattern which determins how the\n number string should be formatted and parsed." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Custom formatting pattern which determins how the number string should be formatted and parsed." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Allow Jakarta Faces page authors to\n install ComponentSystemEventListener\n instances\n on a component in a page.", + "description": "Allow Jakarta Faces page authors to install ComponentSystemEventListener instances on a component in a page.", "attribute": [ { "name": "listener", "required": "true", - "type": "jakarta.el.MethodExpression\n \n (signature must match public void\n listener(jakarta.faces.event.ComponentSystemEvent event) throws\n jakarta.faces.event.AbortProcessingException\n )", - "description": "The expression must\n evaluate to a public method that takes a\n ComponentSystemEvent parameter, with a return\n type of void, or to a public method that takes no\n arguments with a return type of void. In the latter case,\n the method has no way of easily knowing where the event\n came from, but this can be useful in cases where a\n notification is needed that \"an event happened\"." + "type": "jakarta.el.MethodExpression (signature must match public void listener(jakarta.faces.event.ComponentSystemEvent event) throws jakarta.faces.event.AbortProcessingException )", + "description": "The expression must evaluate to a public method that takes a ComponentSystemEvent parameter, with a return type of void, or to a public method that takes no arguments with a return type of void. In the latter case, the method has no way of easily knowing where the event came from, but this can be useful in cases where a notification is needed that \"an event happened\"." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register a named\n facet on the UIComponent associated with the closest parent\n UIComponent tag. \n When the facet contains more than one child the children will be\n automatically put in a container UIPanel.", + "description": "Register a named facet on the UIComponent associated with the closest parent UIComponent tag. When the facet contains more than one child the children will be automatically put in a container UIPanel.", "attribute": [ { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Name of the facet to be created." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Used inside of the metadata facet of a view, this tag will import a mapping of all constant field values of the given type in the current view.\n Constant field values are all public static final fields of the given type.\n The map key represents the constant field name as String.\n The map value represents the actual constant field value.\n This works for classes, interfaces and enums.", + "description": "Used inside of the metadata facet of a view, this tag will import a mapping of all constant field values of the given type in the current view. Constant field values are all public static final fields of the given type. The map key represents the constant field name as String. The map value represents the actual constant field value. This works for classes, interfaces and enums.", "attribute": [ { "name": "type", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "The fully qualified name of the type to import the constant field values for." }, { "name": "var", "required": "false", "type": "java.lang.String", - "description": "Name of request scope attribute under which constants will be exposed as a Map.\n Defaults to the simple name of the given type." + "description": "Name of request scope attribute under which constants will be exposed as a Map. Defaults to the simple name of the given type." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Load a resource bundle localized for the Locale of the current\n view, and expose it as a java.util.Map in the request attributes\n of the current request under the key specified by the value of the\n \"var\" attribute of this tag. The Map must behave such that if a\n get() call is made for a key that does not exist in the Map, the\n literal string ???KEY??? is returned from the Map, where KEY is\n the key being looked up in the Map, instead of a\n MissingResourceException being thrown. If the ResourceBundle does\n not exist, a TagAttributeException must be thrown.", + "description": "Load a resource bundle localized for the Locale of the current view, and expose it as a java.util.Map in the request attributes of the current request under the key specified by the value of the \"var\" attribute of this tag. The Map must behave such that if a get() call is made for a key that does not exist in the Map, the literal string ???KEY??? is returned from the Map, where KEY is the key being looked up in the Map, instead of a MissingResourceException being thrown. If the ResourceBundle does not exist, a TagAttributeException must be thrown.", "attribute": [ { "name": "basename", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Base name of the resource bundle\n to be loaded." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Base name of the resource bundle to be loaded." }, { "name": "var", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Name of a request scope attribute under which\n the resource bundle will be exposed as a Map." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Name of a request scope attribute under which the resource bundle will be exposed as a Map." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Declare the metadata\n facet for this view. This must be a direct child of the\n . This tag\n must reside within the top level XHTML file for the given\n viewId, or in a\n template client, but not in a template. The\n implementation must insure that the direct child of the\n facet is a UIPanel, even if there\n is only one child of the facet. The implementation must set\n the id of the UIPanel to be the\n value of the\n UIViewRoot.METADATA_FACET_NAME\n symbolic constant. The implementation must allow templating for this element\n according\n to the following pattern. template client XHTML view, view01.xhtml Note line 4. The page author must ensure that the\n element does not\n appear on a template or\n included page. It must reside on the root page that corresponds to\n the\n viewId. The template page, template.xhtml", + "description": "Declare the metadata facet for this view. This must be a direct child of the . This tag must reside within the top level XHTML file for the given viewId, or in a template client, but not in a template. The implementation must insure that the direct child of the facet is a UIPanel, even if there is only one child of the facet. The implementation must set the id of the UIPanel to be the value of the UIViewRoot.METADATA_FACET_NAME symbolic constant. The implementation must allow templating for this element according to the following pattern. template client XHTML view, view01.xhtml Note line 4. The page author must ensure that the element does not appear on a template or included page. It must reside on the root page that corresponds to the viewId. The template page, template.xhtml", "attribute": [] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Add a child UIParameter\n component to the UIComponent associated with the closest parent\n UIComponent tag.", + "description": "Add a child UIParameter component to the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.component.UIComponent)", - "description": "ValueExpression to a backing bean\n property bound to the component instance for\n the UIComponent created by this tag." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.component.UIComponent)", + "description": "ValueExpression to a backing bean property bound to the component instance for the UIComponent created by this tag." }, { "name": "id", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Component identifier of the UIParameter component\n to be created." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Component identifier of the UIParameter component to be created." }, { "name": "value", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Value of the parameter to be set." }, { "name": "disable", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "Flag enabling or disabling the inclusion of the\n parameter. This flag is\n consulted by renderers that consider the\n UIParameter component associated with this\n during their rendering.\n Such renderers include jakarta.faces.Output\n jakarta.faces.Link and\n jakarta.faces.OutcomeTarget\n jakarta.faces.Link." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "Flag enabling or disabling the inclusion of the parameter. This flag is consulted by renderers that consider the UIParameter component associated with this during their rendering. Such renderers include jakarta.faces.Output jakarta.faces.Link and jakarta.faces.OutcomeTarget jakarta.faces.Link." }, { "name": "name", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Name of the parameter to be created." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Add an attribute to the \n passThroughAttributes Map of the UIComponent \n associated with the closest parent UIComponent tag.", + "description": "Add an attribute to the passThroughAttributes Map of the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name\n of the pass through attribute. An attribute with this name,\n and the corresponding value will appear on the outer most\n markup element in the rendered markup for the component, as\n specified in the overview for the HTML_BASIC RenderKit. If\n the name of this attribute conflicts with\n Renderer specific attribute, the value\n specified here supercedes the one that would otherwise be\n rendered by the Renderer" + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of the pass through attribute. An attribute with this name, and the corresponding value will appear on the outer most markup element in the rendered markup for the component, as specified in the overview for the HTML_BASIC RenderKit. If the name of this attribute conflicts with Renderer specific attribute, the value specified here supercedes the one that would otherwise be rendered by the Renderer" }, { "name": "value", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "The value\n of the pass through attribute." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "The value of the pass through attribute." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Add attributes to the \n passThroughAttributes Map of the UIComponent \n associated with the closest parent UIComponent tag.\n For each Map.Entry in the Map\n referenced by the value attribute of this tag, take the following action.\n Call component.getPassThroughAttributes().put(entry.getKey(), entry.getValue()).", + "description": "Add attributes to the passThroughAttributes Map of the UIComponent associated with the closest parent UIComponent tag. For each Map.Entry in the Map referenced by the value attribute of this tag, take the following action. Call component.getPassThroughAttributes().put(entry.getKey(), entry.getValue()).", "attribute": [ { "name": "value", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.util.Map)", - "description": "An EL ValueExpression that evaluates to a Map." + "type": "jakarta.el.ValueExpression (must evaluate to java.util.Map)", + "description": "An EL ValueExpression that evaluates to a Map." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register a PhaseListener instance on the UIViewRoot in which\n this tag is nested.", + "description": "Register a PhaseListener instance on the UIViewRoot in which this tag is nested.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.event.PhaseListener)", - "description": "Value binding expression that evaluates to an object that\n implements jakarta.faces.event.PhaseListener." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.event.PhaseListener)", + "description": "Value binding expression that evaluates to an object that implements jakarta.faces.event.PhaseListener." }, { "name": "type", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Fully qualified Java class name of a PhaseListener to be\n created and registered." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Fully qualified Java class name of a PhaseListener to be created and registered." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Add a child UISelectItem component to the UIComponent\n associated with the closest parent UIComponent tag.", + "description": "Add a child UISelectItem component to the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.component.UIComponent)", - "description": "Value binding expression to a backing bean\n property bound to the component instance for\n the UIComponent created by this tag." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.component.UIComponent)", + "description": "Value binding expression to a backing bean property bound to the component instance for the UIComponent created by this tag." }, { "name": "itemDescription", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Description of this option, for use in\n development tools." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Description of this option, for use in development tools." }, { "name": "itemEscaped", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Flag indicating that characters that are sensitive in\n the value of the itemLabel\n attribute must be escaped. This flag is set to \"true\" by\n default." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Flag indicating that characters that are sensitive in the value of the itemLabel attribute must be escaped. This flag is set to \"true\" by default." }, { "name": "itemValue", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Value to be returned to the server if this\n option is selected by the user." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Value to be returned to the server if this option is selected by the user." }, { "name": "value", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.model.SelectItem)", - "description": "Value binding expression pointing at a\n SelectItem instance containing the\n information for this option." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.model.SelectItem)", + "description": "Value binding expression pointing at a SelectItem instance containing the information for this option." }, { "name": "id", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Component identifier of the UISelectItem\n component to be created." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Component identifier of the UISelectItem component to be created." }, { "name": "itemDisabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Flag indicating whether the option created\n by this component is disabled. Expressions\n must evaluate to a boolean. Default value\n is false." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Flag indicating whether the option created by this component is disabled. Expressions must evaluate to a boolean. Default value is false." }, { "name": "itemLabel", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Label to be displayed to the user\n for this option." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Label to be displayed to the user for this option." }, { "name": "noSelectionOption", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Flag indicating whether the option created by this\n component represents the special \"no selection\"\n option. Expressions must evaluate to a boolean.\n Default value is false." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Flag indicating whether the option created by this component represents the special \"no selection\" option. Expressions must evaluate to a boolean. Default value is false." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "UISelectItemGroup is a component that may be nested inside a UISelectMany or UISelectOne component,\n and causes the addition of one SelectItemGroup of one or more SelectItem instances to the list of available options in the parent component.\n This component accepts only children of type UISelectItems or UISelectItem.", + "description": "UISelectItemGroup is a component that may be nested inside a UISelectMany or UISelectOne component, and causes the addition of one SelectItemGroup of one or more SelectItem instances to the list of available options in the parent component. This component accepts only children of type UISelectItems or UISelectItem.", "attribute": [ { "name": "id", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Component identifier of the UISelectItemGroup component to be created." }, { "name": "itemLabel", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Label to be displayed to the user for this option group." }, { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.component.UIComponent)", + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.component.UIComponent)", "description": "Value binding expression to a backing bean property bound to the component instance for the UIComponent created by this tag." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "UISelectItemGroups is a component that may be nested inside a UISelectMany or UISelectOne component,\n and causes the addition of one or more SelectItemGroup of one or more SelectItem instances to the list of available options in the parent component.\n This component accepts only children of type UISelectItems or UISelectItem.", + "description": "UISelectItemGroups is a component that may be nested inside a UISelectMany or UISelectOne component, and causes the addition of one or more SelectItemGroup of one or more SelectItem instances to the list of available options in the parent component. This component accepts only children of type UISelectItems or UISelectItem.", "attribute": [ { "name": "id", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Component identifier of the UISelectItemGroups component to be created." }, { "name": "value", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "Value expression pointing at any array or Iterable.\n The member elements may be instances of any type which is acceptable by the value attribute of any nested UISelectItems or UISelectItem component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "Value expression pointing at any array or Iterable. The member elements may be instances of any type which is acceptable by the value attribute of any nested UISelectItems or UISelectItem component." }, { "name": "itemLabel", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Label to be displayed to the user for this option group." }, { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.component.UIComponent)", + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.component.UIComponent)", "description": "Value binding expression to a backing bean property bound to the component instance for the UIComponent created by this tag." }, { "name": "var", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Expose the currently iterated member element from the value attribute under this request scoped key,\n so that it may be referred to in EL for the value of other attributes of any nested component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Expose the currently iterated member element from the value attribute under this request scoped key, so that it may be referred to in EL for the value of other attributes of any nested component." }, { "name": "itemDisabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Flag indicating whether the option group created by this component is disabled.\n Expressions must evaluate to a boolean.\n Default value is false." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Flag indicating whether the option group created by this component is disabled. Expressions must evaluate to a boolean. Default value is false." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Add a\n child UISelectItems component to the UIComponent associated\n with the closed parent UIComponent tag. When iterating over the\n select items, toString() must be called on\n the\n string rendered attribute values. Version 2 of the specification\n introduces\n several new attributes, described below. These are: var, itemValue,\n itemLabel, itemDescription, itemDisabled, and itemLabelEscaped.", + "description": "Add a child UISelectItems component to the UIComponent associated with the closed parent UIComponent tag. When iterating over the select items, toString() must be called on the string rendered attribute values. Version 2 of the specification introduces several new attributes, described below. These are: var, itemValue, itemLabel, itemDescription, itemDisabled, and itemLabelEscaped.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.component.UIComponent)", - "description": "Value binding expression to a backing bean\n property bound to the component instance for\n the UIComponent created by this tag." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.component.UIComponent)", + "description": "Value binding expression to a backing bean property bound to the component instance for the UIComponent created by this tag." }, { "name": "itemDescription", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "evaluates to a String that\n will\n serve as the description to be shown for the item." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "evaluates to a String that will serve as the description to be shown for the item." }, { "name": "itemLabel", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "evaluates to a String that\n will\n serve as the label to be shown for the item." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "evaluates to a String that will serve as the label to be shown for the item." }, { "name": "itemValue", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "This attribute lets you refer\n to a property of the current member of the collection\n referenced by the \"value\" attribute, using the value of the\n \"var\" attribute as the base. For example,\n #{n.id}." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "This attribute lets you refer to a property of the current member of the collection referenced by the \"value\" attribute, using the value of the \"var\" attribute as the base. For example, #{n.id}." }, { "name": "value", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "Value expression pointing at any Collection\n or array. The member elements may be instances of\n SelectItem or any Java Object. In the\n case where the member elements are plain Java Objects,\n several additional attributes must be used by the page\n author to correctly identify the data to the enclosing\n UISelectOne or UISelectMany\n component, as shown in the following example.\n\n\n  \n \n\nIn the preceding example, the\nvalue attribute on line 1 points to a\nCollection. HobbitBean is\njust a regular Java Object (POJO) that conforms to JavaBeans naming\nconventions for its properties. The value attribute on\nline 2 points to a List, though it could\njust as well point to a Collection, array, or\njakarta.faces.model.DataModel. The attributes on lines 3\nthrough 9, inclusive, leverage the fact that the value is a collection\nof POJOs." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "Value expression pointing at any Collection or array. The member elements may be instances of SelectItem or any Java Object. In the case where the member elements are plain Java Objects, several additional attributes must be used by the page author to correctly identify the data to the enclosing UISelectOne or UISelectMany component, as shown in the following example. In the preceding example, thevalue attribute on line 1 points to aCollection. HobbitBean isjust a regular Java Object (POJO) that conforms to JavaBeans namingconventions for its properties. The value attribute online 2 points to a List, though it couldjust as well point to a Collection, array, orjakarta.faces.model.DataModel. The attributes on lines 3through 9, inclusive, leverage the fact that the value is a collectionof POJOs." }, { "name": "id", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Component identifier of the UISelectItems\n component to be created." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Component identifier of the UISelectItems component to be created." }, { "name": "itemDisabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "evaluates to a boolean that\n will\n determine if the item value is selectable or not." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "evaluates to a boolean that will determine if the item value is selectable or not." }, { "name": "itemLabelEscaped", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "evaluates to a boolean that will\ndetermine if the rendered markup for the item receives normal Faces HTML\nescaping or not. If not specified, the\nruntime must behave as if the value were true." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "evaluates to a boolean that willdetermine if the rendered markup for the item receives normal Faces HTMLescaping or not. If not specified, theruntime must behave as if the value were true." }, { "name": "noSelectionValue", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Is either an EL\n expression pointing to the element in the value collection\n whose value should be marked as a “no selection”\n item, or a literal string that exactly matches the value of\n the item in the collection that must be marked as the\n “no selection” item. If the user selects such\n an item and the field is marked as\n required, then it will not pass validation." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Is either an EL expression pointing to the element in the value collection whose value should be marked as a “no selection” item, or a literal string that exactly matches the value of the item in the collection that must be marked as the “no selection” item. If the user selects such an item and the field is marked as required, then it will not pass validation." }, { "name": "var", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Expose the value from the\n value attribute under this request\n scoped key so that it\n may be referred to in EL for the value of other attributes." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Expose the value from the value attribute under this request scoped key so that it may be referred to in EL for the value of other attributes." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register an ActionListener instance on the UIComponent\n associated with the closest parent UIComponent tag.\n This actionListener will cause the value given by the \"value\"\n attribute to be set into the ValueExpression given by the \"target\"\n attribute. The implementation of this tag creates a special\n ActionListener instance and registers it on\n the\n ActionSource associated with our most\n immediate surrounding\n instance of a tag whose implementation class is a subclass of\n UIComponentTag. This tag creates no output\n to the page\n currently being created. The ActionListener instance\n created and installed by\n this tag has the following behavior and contract.", + "description": "Register an ActionListener instance on the UIComponent associated with the closest parent UIComponent tag. This actionListener will cause the value given by the \"value\" attribute to be set into the ValueExpression given by the \"target\" attribute. The implementation of this tag creates a special ActionListener instance and registers it on the ActionSource associated with our most immediate surrounding instance of a tag whose implementation class is a subclass of UIComponentTag. This tag creates no output to the page currently being created. The ActionListener instance created and installed by this tag has the following behavior and contract.", "attribute": [ { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "value", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "ValueExpression to be stored as the value of the target\n attribute." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "ValueExpression to be stored as the value of the target attribute." }, { "name": "target", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "ValueExpression that is the destination of the value\n attribute." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "ValueExpression that is the destination of the value attribute." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Naming Container tag for all Jakarta Faces core and\n component tags. It is particularly useful when a nested section included via\n or any tag that dynamically includes another\n page is included more than once, potentially causing duplicate component IDs.\n Each of those nested sections can then be wrapped in its own \n with each an unique id.", + "description": "Naming Container tag for all Jakarta Faces core and component tags. It is particularly useful when a nested section included via or any tag that dynamically includes another page is included more than once, potentially causing duplicate component IDs. Each of those nested sections can then be wrapped in its own with each an unique id.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.component.UIComponent)", - "description": "Value binding expression to a backing bean\n property bound to the component instance for\n the UIComponent created by this tag." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.component.UIComponent)", + "description": "Value binding expression to a backing bean property bound to the component instance for the UIComponent created by this tag." }, { "name": "rendered", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Flag indicating whether this component (and its\n children) should be rendered. Expressions must\n evaluate to a boolean." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Flag indicating whether this component (and its children) should be rendered. Expressions must evaluate to a boolean." }, { "name": "id", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Component identifier of the UINamingContainer\n component to be created." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Component identifier of the UINamingContainer component to be created." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "A validator that\n delegates the validation of the local value to the Bean\n Validation API. The validationGroups attribute serves as a\n filter that instructs the Bean Validation API which\n contraints to enforce. If there are any constraint\n violations reported by Bean Validation, the value is\n considered invalid. An\n instance of this validator can participate in class-level\n validation provided the preconditions mentioned in\n are met. Please\n see the documentation for and \n jakarta.faces.validator.BeanValidator.validate() for \n the specification and usage example.", + "description": "A validator that delegates the validation of the local value to the Bean Validation API. The validationGroups attribute serves as a filter that instructs the Bean Validation API which contraints to enforce. If there are any constraint violations reported by Bean Validation, the value is considered invalid. An instance of this validator can participate in class-level validation provided the preconditions mentioned in are met. Please see the documentation for and jakarta.faces.validator.BeanValidator.validate() for the specification and usage example.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.validator.BeanValidator)", - "description": "A ValueExpression that evaluates to an instance of\n BeanValidator." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.validator.BeanValidator)", + "description": "A ValueExpression that evaluates to an instance of BeanValidator." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A boolean value\n enabling page level determination of whether or not this\n validator is enabled on the enclosing component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A boolean value enabling page level determination of whether or not this validator is enabled on the enclosing component." }, { "name": "validationGroups", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A comma-separated list of validation groups. A validation group\n is a fully-qualified class name." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A comma-separated list of validation groups. A validation group is a fully-qualified class name." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register a DoubleRangeValidator instance on the\n UIComponent associated with the closest parent\n UIComponent tag.", + "description": "Register a DoubleRangeValidator instance on the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.validator.DoubleRangeValidator)", - "description": "A ValueExpression that evaluates to an instance of\n DoubleRangeValidator." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.validator.DoubleRangeValidator)", + "description": "A ValueExpression that evaluates to an instance of DoubleRangeValidator." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "minimum", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Double)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Double)", "description": "Minimum value allowed for this component." }, { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A boolean value\n enabling page level determination of whether or not this\n validator is enabled on the enclosing component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A boolean value enabling page level determination of whether or not this validator is enabled on the enclosing component." }, { "name": "maximum", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Double)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Double)", "description": "Maximum value allowed for this component." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register a LengthValidator instance on the\n UIComponent associated with the closest parent\n UIComponent tag.", + "description": "Register a LengthValidator instance on the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.validator.LengthValidator)", - "description": "A ValueExpression that evaluates to an instance of\n LengthValidator." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.validator.LengthValidator)", + "description": "A ValueExpression that evaluates to an instance of LengthValidator." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "minimum", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Integer)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Integer)", "description": "Minimum length allowed for this component." }, { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A boolean value\n enabling page level determination of whether or not this\n validator is enabled on the enclosing component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A boolean value enabling page level determination of whether or not this validator is enabled on the enclosing component." }, { "name": "maximum", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Integer)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Integer)", "description": "Maximum length allowed for this component." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register a LongRangeValidator instance on the\n UIComponent associated with the closest parent\n UIComponent tag.", + "description": "Register a LongRangeValidator instance on the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.validator.LongRangeValidator)", - "description": "A ValueExpression that evaluates to an instance of\n LongRangeValidator." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.validator.LongRangeValidator)", + "description": "A ValueExpression that evaluates to an instance of LongRangeValidator." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "minimum", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Long)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Long)", "description": "Minimum value allowed for this component." }, { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A boolean value\n enabling page level determination of whether or not this\n validator is enabled on the enclosing component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A boolean value enabling page level determination of whether or not this validator is enabled on the enclosing component." }, { "name": "maximum", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Long)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Long)", "description": "Maximum value allowed for this component." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "A validator that uses the pattern attribute to validate the\n wrapping component. The entire pattern is matched against\n the String value of the component. If it matches, it's\n valid.", + "description": "A validator that uses the pattern attribute to validate the wrapping component. The entire pattern is matched against the String value of the component. If it matches, it's valid.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.validator.RegexValidator)", - "description": "A ValueExpression that evaluates to an instance of\n RegexValidator." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.validator.RegexValidator)", + "description": "A ValueExpression that evaluates to an instance of RegexValidator." }, { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A boolean value\n enabling page level determination of whether or not this\n validator is enabled on the enclosing component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A boolean value enabling page level determination of whether or not this validator is enabled on the enclosing component." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "pattern", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A regular expression pattern. Remember that, like in\n all Java strings, backslash must be escaped with another\n backslash." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A regular expression pattern. Remember that, like in all Java strings, backslash must be escaped with another backslash." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "A validator that enforces\n the presence of a value. It has the same affect as setting the\n required attribute on a UIInput to true.", + "description": "A validator that enforces the presence of a value. It has the same affect as setting the required attribute on a UIInput to true.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.validator.RequiredValidator)", - "description": "A ValueExpression that evaluates to an instance of\n RequiredValidator." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.validator.RequiredValidator)", + "description": "A ValueExpression that evaluates to an instance of RequiredValidator." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A boolean value\n enabling page level determination of whether or not this\n validator is enabled on the enclosing component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A boolean value enabling page level determination of whether or not this validator is enabled on the enclosing component." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Support multi-field validation\n by enabling class-level bean validation on CDI based backing\n beans. This feature causes a temporary copy of the bean\n referenced by the value attribute, for the sole\n purpose of populating the bean with field values already\n validated by and then\n performing class-level validation on the copy. Regardless\n of the result of the class-level validation, the copy is\n discarded. This feature must explicitly be enabled by\n setting the application parameter specified in the javadoc\n for the symbolic constant\n jakarta.faces.validator.BeanValidator.ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAME.\n If this parameter is not set, or is set to false, this tag\n must be a no-op. A non-normative example follows the\n specification of the feature. At a high level, the feature provides for\n a UIInput subclass that maintains its own\n special private Validator that uses information\n from one or more s to\n perform class-level bean validation. For discussion, this\n special Validator is called\n the wholeBeanValidator. This tag must be backed by a UIInput\n component with the following specializations. Override getSubmittedValue() to return a\n non-null non empty String. This\n allows UIInput.validate() to\n call wholeBeanValidator.validate(). Override setConverter() to be a no-op.\n It does not make sense to allow a converter to be\n installed. Override addValidator() to be a no-op\n unless the argument is an instance\n of wholeBeanValidator. It does not make sense to\n allow additional validators to be installed. Override validate() to take the\n following actions. If the feature is not enabled, return\n immediately. If the wholeBeanValidator has not yet\n been installed, instantiate and pass it to \n this.addValidator(). Call super.validate(). The wholeBeanValidator must have\n a validate() method that performs the following\n actions. Due to the above specification, this method will\n only ever be passed the special UIInput\n component. Resolve the value of the component to\n its Object. Assume that\n this value is the bean whose properties are\n intended to be populated by components whose values are each\n validated by tags.\n For discussion, this bean is called the candidate\n bean and the properties and their respective values are\n called the candidate values. If the candidate\n bean cannot be referenced, return immediately\n from validate(). Use the information recorded\n by each of those tags\n to ensure that none of the candidate values are\n invalid. If any of them are invalid, return immediately\n from validate(). This ensures class-level\n validation is only performed on an instance whose fields are\n all individually valid. Otherwise it can be assumed that all field-level\n validations for this class-level validation have passed. Class-level bean validation must operate on a\n sufficiently populated bean instance. This differs from Faces\n field-level validation, which prevents beans from being\n populated with invalid values. To accomodate this\n difference, the candidate bean must be copied,\n populated with the already-validated candidate\n values, and then subjected to class-level validation.\n The copying must proceed in the following order. Invoke the newInstance() method on the\n bean's Class. If this throws\n any Exception, swallow it and\n continue. If the bean implements Serializable, use\n that to copy the bean instance. Otherwise, if the bean\n implements Cloneable, clone the bean\n instance. Otherwise, if the bean has a copy constructor, use\n that to copy the bean instance. If none of these techniques yields a copy,\n throw FacesException. Populate the copied bean with the candidate\n values. Obtain a reference to\n a jakarta.validation.Validator instance using the\n same steps described in the javadoc\n for jakarta.faces.validator.BeanValidator.validate().\n Let the instance be called beanValidator for\n discussion. Obtain the value of the validationGroups\n attribute using the same steps described in the javadoc\n for jakarta.faces.validator.BeanValidator.validate().\n If this value is not present or not valid,\n throw FacesException. Call the validate method on\n beanValidator, passing the populated copied bean\n and the validation groups as arguments. The copied bean can\n be discarded at this point. If the\n returned Set is\n non-empty, for each element in the Set, create\n a FacesMessage where the summary and detail are\n the return from\n calling ConstraintViolation.getMessage().\n Capture all such FacesMessage instances into\n a Collection and pass them\n to ValidatorException. Using information\n recorded by the \n tag(s), call setValid(false) on all of the\n components whose values contributed to this class-level\n validation. This is essential to prevent the invalid value\n from being set into the model during the update model values\n phase. Finally, throw the exception. This tag must be placed in the component tree after all\n of the fields that are to be included in the multi-field\n validation. If this precondition is not met, the results\n of applying this tag are unspecified. This tag must be used in concert\n with and Bean\n Validation. Here is a brief example of the common case of\n ensuring two password fields are individually valid and also\n both the same. The feature requires the use of\n the validationGroups attribute on all of\n the tags and\n the tag. First, the ConstraintValidator\n implementation. Note that a PasswordHolder instance is\n passed to the isValid() method. This method\n will only be called if the individual properties of\n the PasswordHolder are valid. This fact allows\n the isValid() method to inspect the properties\n and perform effective class-level validtion. Next, the Constraint. Now the backing bean constrained by\n this Constraint. Note the use\n of groups. Note the fact that the bean\n implements Cloneable. Finally, the Facelets view.", + "description": "Support multi-field validation by enabling class-level bean validation on CDI based backing beans. This feature causes a temporary copy of the bean referenced by the value attribute, for the sole purpose of populating the bean with field values already validated by and then performing class-level validation on the copy. Regardless of the result of the class-level validation, the copy is discarded. This feature must explicitly be enabled by setting the application parameter specified in the javadoc for the symbolic constant jakarta.faces.validator.BeanValidator.ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAME. If this parameter is not set, or is set to false, this tag must be a no-op. A non-normative example follows the specification of the feature. At a high level, the feature provides for a UIInput subclass that maintains its own special private Validator that uses information from one or more s to perform class-level bean validation. For discussion, this special Validator is called the wholeBeanValidator. This tag must be backed by a UIInput component with the following specializations. Override getSubmittedValue() to return a non-null non empty String. This allows UIInput.validate() to call wholeBeanValidator.validate(). Override setConverter() to be a no-op. It does not make sense to allow a converter to be installed. Override addValidator() to be a no-op unless the argument is an instance of wholeBeanValidator. It does not make sense to allow additional validators to be installed. Override validate() to take the following actions. If the feature is not enabled, return immediately. If the wholeBeanValidator has not yet been installed, instantiate and pass it to this.addValidator(). Call super.validate(). The wholeBeanValidator must have a validate() method that performs the following actions. Due to the above specification, this method will only ever be passed the special UIInput component. Resolve the value of the component to its Object. Assume that this value is the bean whose properties are intended to be populated by components whose values are each validated by tags. For discussion, this bean is called the candidate bean and the properties and their respective values are called the candidate values. If the candidate bean cannot be referenced, return immediately from validate(). Use the information recorded by each of those tags to ensure that none of the candidate values are invalid. If any of them are invalid, return immediately from validate(). This ensures class-level validation is only performed on an instance whose fields are all individually valid. Otherwise it can be assumed that all field-level validations for this class-level validation have passed. Class-level bean validation must operate on a sufficiently populated bean instance. This differs from Faces field-level validation, which prevents beans from being populated with invalid values. To accomodate this difference, the candidate bean must be copied, populated with the already-validated candidate values, and then subjected to class-level validation. The copying must proceed in the following order. Invoke the newInstance() method on the bean's Class. If this throws any Exception, swallow it and continue. If the bean implements Serializable, use that to copy the bean instance. Otherwise, if the bean implements Cloneable, clone the bean instance. Otherwise, if the bean has a copy constructor, use that to copy the bean instance. If none of these techniques yields a copy, throw FacesException. Populate the copied bean with the candidate values. Obtain a reference to a jakarta.validation.Validator instance using the same steps described in the javadoc for jakarta.faces.validator.BeanValidator.validate(). Let the instance be called beanValidator for discussion. Obtain the value of the validationGroups attribute using the same steps described in the javadoc for jakarta.faces.validator.BeanValidator.validate(). If this value is not present or not valid, throw FacesException. Call the validate method on beanValidator, passing the populated copied bean and the validation groups as arguments. The copied bean can be discarded at this point. If the returned Set is non-empty, for each element in the Set, create a FacesMessage where the summary and detail are the return from calling ConstraintViolation.getMessage(). Capture all such FacesMessage instances into a Collection and pass them to ValidatorException. Using information recorded by the tag(s), call setValid(false) on all of the components whose values contributed to this class-level validation. This is essential to prevent the invalid value from being set into the model during the update model values phase. Finally, throw the exception. This tag must be placed in the component tree after all of the fields that are to be included in the multi-field validation. If this precondition is not met, the results of applying this tag are unspecified. This tag must be used in concert with and Bean Validation. Here is a brief example of the common case of ensuring two password fields are individually valid and also both the same. The feature requires the use of the validationGroups attribute on all of the tags and the tag. First, the ConstraintValidator implementation. Note that a PasswordHolder instance is passed to the isValid() method. This method will only be called if the individual properties of the PasswordHolder are valid. This fact allows the isValid() method to inspect the properties and perform effective class-level validtion. Next, the Constraint. Now the backing bean constrained by this Constraint. Note the use of groups. Note the fact that the bean implements Cloneable. Finally, the Facelets view.", "attribute": [ { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A boolean value enabling or\n disabling this validation component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A boolean value enabling or disabling this validation component." }, { "name": "validationGroups", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A comma-separated list of\n validation groups. A validation group is a\n fully-qualified class name." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A comma-separated list of validation groups. A validation group is a fully-qualified class name." }, { "name": "id", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Component identifier of the\n UIInput component to be created." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Component identifier of the UIInput component to be created." }, { "name": "value", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", "description": "A ValueExpression referencing the bean to be validated." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register\n a named\n Validator instance on the UIComponent associated with the\n closest parent UIComponent tag. Usage outside of an EditableValueHolder\n parent If this element is nested within a\n UIComponent tag that has other\n UIComponent children, the validator will be\n automatically added to all the child components as well as\n this one. The implementation must ensure this occurs even if\n the parent of this element is not an instance of\n EditableValueHolder.", + "description": "Register a named Validator instance on the UIComponent associated with the closest parent UIComponent tag. Usage outside of an EditableValueHolder parent If this element is nested within a UIComponent tag that has other UIComponent children, the validator will be automatically added to all the child components as well as this one. The implementation must ensure this occurs even if the parent of this element is not an instance of EditableValueHolder.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.validator.Validator)", - "description": "A ValueExpression that evaluates to an object that implements\n the jakarta.faces.validator.Validator interface." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.validator.Validator)", + "description": "A ValueExpression that evaluates to an object that implements the jakarta.faces.validator.Validator interface." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "disabled", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "A boolean value\n enabling page level determination of whether or not this\n validator is enabled on the enclosing component." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "A boolean value enabling page level determination of whether or not this validator is enabled on the enclosing component." }, { "name": "validatorId", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Validator identifier of the Validator\n to be created and registered." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Validator identifier of the Validator to be created and registered." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Register a ValueChangeListener instance on the UIComponent\n associated with the closest parent UIComponent tag.", + "description": "Register a ValueChangeListener instance on the UIComponent associated with the closest parent UIComponent tag.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.event.ValueChangeListener)", - "description": "Value binding expression that evaluates to an object that\n implements jakarta.faces.event.ValueChangeListener." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.event.ValueChangeListener)", + "description": "Value binding expression that evaluates to an object that implements jakarta.faces.event.ValueChangeListener." }, { "name": "type", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Fully qualified Java class name of a\n ValueChangeListener to be created and registered." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Fully qualified Java class name of a ValueChangeListener to be created and registered." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this attribute\n refers\n to the value of one of the exposed attached objects within the\n composite component inside of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Container for all Jakarta Faces\n core and component tags used on a\n page.", + "description": "Container for all Jakarta Faces core and component tags used on a page.", "attribute": [ { "name": "afterPhase", "required": "false", - "type": "jakarta.el.MethodExpression\n \n (signature must match void afterPhase(jakarta.faces.event.PhaseEvent)\n )", - "description": "MethodBinding pointing to a method that takes a\n jakarta.faces.event.PhaseEvent and returns void. This\n method will be called after every phase except for\n restore view on an initial request." + "type": "jakarta.el.MethodExpression (signature must match void afterPhase(jakarta.faces.event.PhaseEvent) )", + "description": "MethodBinding pointing to a method that takes a jakarta.faces.event.PhaseEvent and returns void. This method will be called after every phase except for restore view on an initial request." }, { "name": "contentType", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Specifies the\n content-type of the response." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Specifies the content-type of the response." }, { "name": "encoding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Specifies the\n character encoding that should be used for the\n response." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Specifies the character encoding that should be used for the response." }, { "name": "renderKitId", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Identifier for the RenderKit to use for\n rendering this page." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Identifier for the RenderKit to use for rendering this page." }, { "name": "beforePhase", "required": "false", - "type": "jakarta.el.MethodExpression\n \n (signature must match void beforePhase(jakarta.faces.event.PhaseEvent)\n )", - "description": "MethodBinding pointing to a method that takes a\n jakarta.faces.event.PhaseEvent and returns void. This method\n will be called before every phase except for restore view." + "type": "jakarta.el.MethodExpression (signature must match void beforePhase(jakarta.faces.event.PhaseEvent) )", + "description": "MethodBinding pointing to a method that takes a jakarta.faces.event.PhaseEvent and returns void. This method will be called before every phase except for restore view." }, { "name": "contracts", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A comma separated list of\n resource library contracts that may be used from within\n the Facelets chain. If this attribute is present, it\n must only be on the outer-most file in the chain of\n files that started ultimately with a call to\n ViewDeclarationLanguage.createView(). Any\n use of this attribute on a non-outer-most file is undefined.\n \n If this attribute exists on the tag,\n empty or not, the tag handler must create a\n List for the value of the attribute and\n unconditionally call\n FacesContext.setRresourceLibraryContracts() passing\n that list value." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A comma separated list of resource library contracts that may be used from within the Facelets chain. If this attribute is present, it must only be on the outer-most file in the chain of files that started ultimately with a call to ViewDeclarationLanguage.createView(). Any use of this attribute on a non-outer-most file is undefined. If this attribute exists on the tag, empty or not, the tag handler must create a List for the value of the attribute and unconditionally call FacesContext.setRresourceLibraryContracts() passing that list value." }, { "name": "locale", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "Locale to use for localizing this page. Expressions\n must evaluate to a java.util.Locale or to a String\n that is converted to a Locale." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "Locale to use for localizing this page. Expressions must evaluate to a java.util.Locale or to a String that is converted to a Locale." }, { "name": "transient", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "If\n true, this view must not participate in\n state saving or restoring. Note that transient views\n may not be used with @ViewScoped managed\n beans. The implementation must call\n setTransient() on the\n UIViewRoot, passing the value of the\n attribute as specified in the markup." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "If true, this view must not participate in state saving or restoring. Note that transient views may not be used with @ViewScoped managed beans. The implementation must call setTransient() on the UIViewRoot, passing the value of the attribute as specified in the markup." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "This action component specifies\n an application-specific command (or action), using an EL\n method expression, to be invoked during one of the Faces\n lifecycle phases, by default Invoke Application.", + "description": "This action component specifies an application-specific command (or action), using an EL method expression, to be invoked during one of the Faces lifecycle phases, by default Invoke Application.", "attribute": [ { "name": "action", "required": "true", - "type": "jakarta.el.MethodExpression\n \n (signature must match public \n java.lang.Object action()\n )", - "description": "MethodExpression representing the application action\n to invoke when this component is activated by the user. The\n expression must evaluate to a public method that takes no\n parameters, and returns an Object (the toString() of which\n is called to derive the logical outcome) which is passed to\n the NavigationHandler for this application." + "type": "jakarta.el.MethodExpression (signature must match public java.lang.Object action() )", + "description": "MethodExpression representing the application action to invoke when this component is activated by the user. The expression must evaluate to a public method that takes no parameters, and returns an Object (the toString() of which is called to derive the logical outcome) which is passed to the NavigationHandler for this application." }, { "name": "immediate", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Flag indicating that, if this component is activated\n by the user, notifications should be delivered to\n interested listeners and actions immediately (that is,\n during Apply Request Values phase) rather than waiting\n until Invoke Application phase." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Flag indicating that, if this component is activated by the user, notifications should be delivered to interested listeners and actions immediately (that is, during Apply Request Values phase) rather than waiting until Invoke Application phase." }, { "name": "phase", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Specifies the phase in which the action invocation\n should occur using the name of the phase constant in the\n PhaseId class (the case does not matter). The value must\n be one of APPLY_REQUEST_VALUES, PROCESS_VALIDATIONS,\n UPDATE_MODEL_VALUES, or INVOKE_APPLICATION. The default\n is INVOKE_APPLICATION." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Specifies the phase in which the action invocation should occur using the name of the phase constant in the PhaseId class (the case does not matter). The value must be one of APPLY_REQUEST_VALUES, PROCESS_VALIDATIONS, UPDATE_MODEL_VALUES, or INVOKE_APPLICATION. The default is INVOKE_APPLICATION." }, { "name": "actionListener", "required": "false", - "type": "jakarta.el.MethodExpression\n \n (signature must match public void\n actionListener(jakarta.faces.event.ActionEvent)\n )", - "description": "MethodExpression representing an action listener method that\n will be notified when this component is activated by the user.\n The expression must evaluate to a public method that takes an\n ActionEvent parameter, with a return type of void, or to a public method that takes no\n arguments with a return type of void. In the latter case, the\n method has no way of easily knowing where the event came from,\n but this can be useful in cases where a notification is needed\n that \"some action happened\"." + "type": "jakarta.el.MethodExpression (signature must match public void actionListener(jakarta.faces.event.ActionEvent) )", + "description": "MethodExpression representing an action listener method that will be notified when this component is activated by the user. The expression must evaluate to a public method that takes an ActionEvent parameter, with a return type of void, or to a public method that takes no arguments with a return type of void. In the latter case, the method has no way of easily knowing where the event came from, but this can be useful in cases where a notification is needed that \"some action happened\"." }, { "name": "onPostback", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "View actions are most commonly used on the initial\n view request. Therefore, view actions do not operate on\n postback, by default. This attribute enables a view action\n to operate on postback." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "View actions are most commonly used on the initial view request. Therefore, view actions do not operate on postback, by default. This attribute enables a view action to operate on postback." }, { "name": "if", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Like all children of ,\n a view action has no visual representation in the view.\n This attribute has exactly the same effect on a view action\n as the rendered attribute has on a visual\n component. Specifically, if the value of this attribute\n evaluates to false the component has no\n effect." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Like all children of , a view action has no visual representation in the view. This attribute has exactly the same effect on a view action as the rendered attribute has on a visual component. Specifically, if the value of this attribute evaluates to false the component has no effect." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Used inside of the\n metadata facet of a view, this tag causes a UIViewParameter\n to be attached as metadata for the current view. Because\n UIViewParameter extends UIInput\n all of the attributes and nested child content for any\n UIInput tags are valid on this tag as well.", + "description": "Used inside of the metadata facet of a view, this tag causes a UIViewParameter to be attached as metadata for the current view. Because UIViewParameter extends UIInput all of the attributes and nested child content for any UIInput tags are valid on this tag as well.", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.component.UIComponent)", - "description": "The ValueExpression linking this component to a property in a\n backing bean." + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.component.UIComponent)", + "description": "The ValueExpression linking this component to a property in a backing bean." }, { "name": "converterMessage", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A ValueExpression enabled attribute that, if present, will be\n used as the text of the converter message, replacing any message\n that comes from the converter." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A ValueExpression enabled attribute that, if present, will be used as the text of the converter message, replacing any message that comes from the converter." }, { "name": "id", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The component identifier for this component. This value must be\n unique within the closest parent component that is a naming\n container." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The component identifier for this component. This value must be unique within the closest parent component that is a naming container." }, { "name": "required", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to boolean)", - "description": "Flag indicating that the user is required to provide a submitted\n value for this input component." + "type": "jakarta.el.ValueExpression (must evaluate to boolean)", + "description": "Flag indicating that the user is required to provide a submitted value for this input component." }, { "name": "validator", "required": "false", - "type": "jakarta.el.MethodExpression\n \n (signature must match void validate(jakarta.faces.context.FacesContext,\n jakarta.faces.component.UIComponent, java.lang.Object)\n )", - "description": "MethodExpression representing a validator method that will be\n called\n during Process Validations to perform correctness checks on the\n value of this component. The expression must evaluate to a\n public\n method that takes FacesContext, UIComponent, and Object\n parameters,\n with a return type of void." + "type": "jakarta.el.MethodExpression (signature must match void validate(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent, java.lang.Object) )", + "description": "MethodExpression representing a validator method that will be called during Process Validations to perform correctness checks on the value of this component. The expression must evaluate to a public method that takes FacesContext, UIComponent, and Object parameters, with a return type of void." }, { "name": "value", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Object)", - "description": "A ValueExpression to which the value of the request parameter, as\n determined by the name attribute, is bound. The resolved value of this\n expression is used when encoding the view parameter into a bookmarkable link or\n redirect URL with view parameter encoding enabled. If this attribute is omitted,\n the value of the request parameter will instead be the local value of the\n UIViewParameter." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Object)", + "description": "A ValueExpression to which the value of the request parameter, as determined by the name attribute, is bound. The resolved value of this expression is used when encoding the view parameter into a bookmarkable link or redirect URL with view parameter encoding enabled. If this attribute is omitted, the value of the request parameter will instead be the local value of the UIViewParameter." }, { "name": "maxlength", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to int)", - "description": "The maximum number of characters that may\n be entered in this field." + "type": "jakarta.el.ValueExpression (must evaluate to int)", + "description": "The maximum number of characters that may be entered in this field." }, { "name": "converter", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.convert.Converter)", + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.convert.Converter)", "description": "Converter instance registered with this component." }, { "name": "for", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "If present, this\n attribute refers to the value of one of the exposed\n attached objects within the composite component inside\n of which this tag is nested." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "If present, this attribute refers to the value of one of the exposed attached objects within the composite component inside of which this tag is nested." }, { "name": "name", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name\n of the request parameter from which the value for this\n component is retrieved on an initial request or to\n override the stored value on a postback." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of the request parameter from which the value for this component is retrieved on an initial request or to override the stored value on a postback." }, { "name": "requiredMessage", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A ValueExpression enabled attribute that, if present, will be\n used as the text of the validation message for the \"required\"\n facility, if the \"required\" facility is used." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A ValueExpression enabled attribute that, if present, will be used as the text of the validation message for the \"required\" facility, if the \"required\" facility is used." }, { "name": "validatorMessage", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "A ValueExpression enabled attribute that, if present, will be\n used as the text of the validator message, replacing any\n message that comes from the validator." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "A ValueExpression enabled attribute that, if present, will be used as the text of the validator message, replacing any message that comes from the validator." }, { "name": "valueChangeListener", "required": "false", - "type": "jakarta.el.MethodExpression\n \n (signature must match void\n valueChange(jakarta.faces.event.ValueChangeEvent)\n )", - "description": "MethodExpression representing a value change listener method\n that will be notified when a new value has been set for this\n input component. The expression must evaluate to a public\n method that takes a ValueChangeEvent\n parameter,\n with a return type of void, or\n to a public method that takes no arguments with a return type\n of void. In the latter case, the method has no way of easily\n knowing what the new value is, but this can be useful in cases\n where a notification is needed that \"this value\n changed\"." + "type": "jakarta.el.MethodExpression (signature must match void valueChange(jakarta.faces.event.ValueChangeEvent) )", + "description": "MethodExpression representing a value change listener method that will be notified when a new value has been set for this input component. The expression must evaluate to a public method that takes a ValueChangeEvent parameter, with a return type of void, or to a public method that takes no arguments with a return type of void. In the latter case, the method has no way of easily knowing what the new value is, but this can be useful in cases where a notification is needed that \"this value changed\"." } ] }, { "name": "https://jakarta.ee/specifications/faces/4.1/vdldoc/f/", - "description": "Registers a websocket push\n connection in client side by rendering the necessary scripts.\n Push messages can be sent from server side via\n jakarta.faces.push.PushContext interface. See also\n jakarta.faces.push.Push API documentation for an\n elaborate instruction on how to use\n .", + "description": "Registers a websocket push connection in client side by rendering the necessary scripts. Push messages can be sent from server side via jakarta.faces.push.PushContext interface. See also jakarta.faces.push.Push API documentation for an elaborate instruction on how to use .", "attribute": [ { "name": "binding", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to jakarta.faces.component.UIComponent)", + "type": "jakarta.el.ValueExpression (must evaluate to jakarta.faces.component.UIComponent)", "description": "Value binding expression to a backing bean property bound to the component instance for the UIComponent created by this tag." }, { "name": "channel", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The name of the websocket channel.\n It may not be an EL expression and it may only contain alphanumeric characters, hyphens, underscores and periods.\n All open websockets on the same channel name will receive the same push notification from the server." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The name of the websocket channel. It may not be an EL expression and it may only contain alphanumeric characters, hyphens, underscores and periods. All open websockets on the same channel name will receive the same push notification from the server." }, { "name": "user", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.io.Serializable)", - "description": "The user identifier of the websocket channel, so that user-targeted push messages can be sent.\n It must implement Serializable and preferably have low memory footprint.\n Suggestion: use #{request.remoteUser} or #{someLoggedInUser.id}.\n All open websockets on the same channel and user will receive the same push message from the server." + "type": "jakarta.el.ValueExpression (must evaluate to java.io.Serializable)", + "description": "The user identifier of the websocket channel, so that user-targeted push messages can be sent. It must implement Serializable and preferably have low memory footprint. Suggestion: use #{request.remoteUser} or #{someLoggedInUser.id}. All open websockets on the same channel and user will receive the same push message from the server." }, { "name": "onmessage", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The JavaScript event handler function that is invoked when a push message is received from the server.\n The function will be invoked with three arguments: the push message, the channel name and the raw MessageEvent itself." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The JavaScript event handler function that is invoked when a push message is received from the server. The function will be invoked with three arguments: the push message, the channel name and the raw MessageEvent itself." }, { "name": "onclose", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The JavaScript event handler function that is invoked when the websocket is closed and will not anymore attempt to reconnect.\n The function will be invoked with three arguments: the close reason code, the channel name and the raw CloseEvent itself.\n Note that this will also be invoked when the close is caused by an error and that you can inspect the close reason code if an actual connection error occurred and which one (i.e. when the code is not 1000 or 1008).\n See also \n RFC 6455 section 7.4.1 \n and\n CloseCodes\n API for an elaborate list of all close codes." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The JavaScript event handler function that is invoked when the websocket is closed and will not anymore attempt to reconnect. The function will be invoked with three arguments: the close reason code, the channel name and the raw CloseEvent itself. Note that this will also be invoked when the close is caused by an error and that you can inspect the close reason code if an actual connection error occurred and which one (i.e. when the code is not 1000 or 1008). See also RFC 6455 section 7.4.1 and CloseCodes API for an elaborate list of all close codes." }, { "name": "rendered", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Whether to render the websocket scripts or not.\n Defaults to true.\n This attribute is implicitly re-evaluated on every ajax request by a PreRenderViewEvent listener on the UIViewRoot.\n If the value changes to false while the websocket is already opened, then the websocket will implicitly be closed." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Whether to render the websocket scripts or not. Defaults to true. This attribute is implicitly re-evaluated on every ajax request by a PreRenderViewEvent listener on the UIViewRoot. If the value changes to false while the websocket is already opened, then the websocket will implicitly be closed." }, { "name": "id", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", "description": "Component identifier of the UIWebsocket component to be created." }, { "name": "scope", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The scope of the websocket channel.\n It may not be an EL expression and allowed values are application, session and view, case insensitive.\n When the value is application, then all channels with the same name throughout the application will receive the same push message.\n When the value is session, then only the channels with the same name in the current user session will receive the same push message.\n When the value is view, then only the channel in the current view will receive the push message.\n The default scope is application.\n When the user attribute is specified, then the default scope is session." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The scope of the websocket channel. It may not be an EL expression and allowed values are application, session and view, case insensitive. When the value is application, then all channels with the same name throughout the application will receive the same push message. When the value is session, then only the channels with the same name in the current user session will receive the same push message. When the value is view, then only the channel in the current view will receive the push message. The default scope is application. When the user attribute is specified, then the default scope is session." }, { "name": "onopen", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The JavaScript event handler function that is invoked when the websocket is opened.\n The function will be invoked with one argument: the channel name." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The JavaScript event handler function that is invoked when the websocket is opened. The function will be invoked with one argument: the channel name." }, { "name": "onerror", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "The JavaScript event handler function that is invoked when a connection error has occurred and the websocket will attempt to reconnect.\n The function will be invoked with three arguments: the error reason code, the channel name and the raw CloseEvent itself.\n Note that this will not be invoked on final close of the websocket, even when the final close is caused by an error.\n See also \n RFC 6455 section 7.4.1 \n and\n CloseCodes\n API for an elaborate list of all close codes." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "The JavaScript event handler function that is invoked when a connection error has occurred and the websocket will attempt to reconnect. The function will be invoked with three arguments: the error reason code, the channel name and the raw CloseEvent itself. Note that this will not be invoked on final close of the websocket, even when the final close is caused by an error. See also RFC 6455 section 7.4.1 and CloseCodes API for an elaborate list of all close codes." }, { "name": "connected", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.Boolean)", - "description": "Whether to (auto)connect the websocket or not.\n Defaults to true.\n It's interpreted as a JavaScript instruction whether to open or close the websocket push connection.\n This attribute is implicitly re-evaluated on every ajax request by a PreRenderViewEvent listener on the UIViewRoot.\n You can also explicitly set it to false and then manually control in JavaScript by faces.push.open(clientId) and faces.push.close(clientId)." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.Boolean)", + "description": "Whether to (auto)connect the websocket or not. Defaults to true. It's interpreted as a JavaScript instruction whether to open or close the websocket push connection. This attribute is implicitly re-evaluated on every ajax request by a PreRenderViewEvent listener on the UIViewRoot. You can also explicitly set it to false and then manually control in JavaScript by faces.push.open(clientId) and faces.push.close(clientId)." } ] }, { "name": "ht", - "description": "Markup element\n that causes a component of component-family:\n jakarta.faces.Panel with renderer-type:\n jakarta.faces.passthrough.Element to be inserted in the tree.\n This element is primarily intended to be used by the default\n TagDecorator, when no match is found as described in\n the javadoc for that class. The component that backs this element\n must implement\n jakarta.faces.component.behavior.ClientBehaviorHolder\n and return \"click\" from its getDefaultEventName()\n method. The list of events returned from its\n getEventNames() method must include the \"on*\"\n attributes below, ommitting the leading \"on\".", + "description": "Markup element that causes a component of component-family: jakarta.faces.Panel with renderer-type: jakarta.faces.passthrough.Element to be inserted in the tree. This element is primarily intended to be used by the default TagDecorator, when no match is found as described in the javadoc for that class. The component that backs this element must implement jakarta.faces.component.behavior.ClientBehaviorHolder and return \"click\" from its getDefaultEventName() method. The list of events returned from its getEventNames() method must include the \"on*\" attributes below, ommitting the leading \"on\".", "attribute": [ { "name": "elementName", "required": "true", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "This attribute must be in the\n jakarta.faces.passthrough namespace and\n its value must be set into the component's pass through\n attributes map under the key given by the value of the symbolic\n constant\n jakarta.faces.render.Renderer.PASSTHROUGH_RENDERER_LOCALNAME_KEY." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "This attribute must be in the jakarta.faces.passthrough namespace and its value must be set into the component's pass through attributes map under the key given by the value of the symbolic constant jakarta.faces.render.Renderer.PASSTHROUGH_RENDERER_LOCALNAME_KEY." }, { "name": "ondblclick", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a pointer button is\n double clicked over this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a pointer button is double clicked over this element." }, { "name": "onmouseup", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a pointer button is\n released over this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a pointer button is released over this element." }, { "name": "onmousemove", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a pointer button is\n moved within this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a pointer button is moved within this element." }, { "name": "onkeypress", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a key is\n pressed and released over this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a key is pressed and released over this element." }, { "name": "onkeyup", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a key is\n released over this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a key is released over this element." }, { "name": "onclick", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a pointer button is\n clicked over this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a pointer button is clicked over this element." }, { "name": "onmousedown", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a pointer button is\n pressed down over this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a pointer button is pressed down over this element." }, { "name": "onmouseover", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a pointer button is\n moved onto this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a pointer button is moved onto this element." }, { "name": "onmouseout", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a pointer button is\n moved away from this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a pointer button is moved away from this element." }, { "name": "onkeydown", "required": "false", - "type": "jakarta.el.ValueExpression\n \n (must evaluate to java.lang.String)", - "description": "Javascript code executed when a key is\n pressed down over this element." + "type": "jakarta.el.ValueExpression (must evaluate to java.lang.String)", + "description": "Javascript code executed when a key is pressed down over this element." } ] } diff --git a/generator/src/data/jakarta/h-4.0.json b/generator/src/data/jakarta/h-4.0.json index 40bc33f..0051062 100644 --- a/generator/src/data/jakarta/h-4.0.json +++ b/generator/src/data/jakarta/h-4.0.json @@ -12,7 +12,7 @@ "type": "boolean" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -198,7 +198,7 @@ "description": "Render an HTML \"a\" anchor element. The value of the component is rendered as the anchor text and the outcome of the component is used to determine the target URL rendered in the \"href\" attribute. Any child UIParameter components are appended to the String to be output as the value of the \"href\" attribute as query parameters before rendering. The entire \"href\" string must be passed through a call to the encodeResourceURL() method of the ExternalContext. The name of the UIParameter goes on the left hand side, and the value of the UIParameter on the right hand side. The name and the value must be URLEncoded. Each UIParameter instance is separated by an ampersand, as dictated in the URL spec. If the \"fragment\" attribute is specified, the value will be included at the end of the resulting URL preceded by a hash mark. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute. If the \"id\" attribute is specified, follow the same steps as mentioned in the \"General Notes on Encoding\" regarding the \"id\" attribute for UIInput components. If the \"disabled\" attribute is specified, do not render the HTML \"a\" anchor element or the \"href\" element. Instead, render a \"span\" element. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute on the \"span\". Render any pass-through attributes on the \"span\".", "attribute": [ { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -423,7 +423,7 @@ }, { "name": "head", - "description": "Render the markup for a element. Decode Behavior No action is required during decode for this renderer. Encode Behavior Render the starting element tag. Any attributes declared on the element must be passed through unmodified to the rendered output. Just before rendering the closing element tag, render any resources that have been targeted for this \"head\" element: Obtain a UIViewRoot instance. Obtain a List of component resources targeted for this \"head\" element with a call to UIViewRoot.getComponentResources() with the String \"head\" as the argument. Iterate over the returned List of UIComponent instances and call encodeAll on each UIComponent instance. Any attributes declared on the element must be passed through unmodified to the rendered output. Render the ending element tag.", + "description": "Render the markup for a element. Decode Behavior No action is required during decode for this renderer. Encode Behavior Render the starting element tag. Any attributes declared on the element must be passed through unmodified to the rendered output. Just before rendering the closing element tag, render any resources that have been targeted for this \"head\" element: Obtain a UIViewRoot instance. Obtain a List of component resources targeted for this \"head\" element with a call to UIViewRoot.getComponentResources() with the String \"head\" as the argument. Iterate over the returned List of UIComponent instances and call encodeAll on each UIComponent instance. Any attributes declared on the element must be passed through unmodified to the rendered output. Render the ending element tag.", "attribute": [ { "description": "Direction indication for text that does not inherit directionality. Valid values are \"LTR\" (left-to-right) and \"RTL\" (right-to-left).", @@ -447,7 +447,7 @@ }, { "name": "body", - "description": "Render the markup for a element. Decode Behavior No action is required during decode for this renderer. Encode Behavior Render the starting element tag. Just before rendering the closing element tag, render any resources that have been targeted for this \"body\" element: Obtain a UIViewRoot instance. Obtain a List of component resources targeted for this \"body\" element with a call to UIViewRoot.getComponentResources() with the String \"body\" as the argument. Render the ending element tag. Iterate over the returned List of UIComponent instances and call encodeAll on each UIComponent instance. Any attributes declared on the element must be passed through unmodified to the rendered output.", + "description": "Render the markup for a element. Decode Behavior No action is required during decode for this renderer. Encode Behavior Render the starting element tag. Just before rendering the closing element tag, render any resources that have been targeted for this \"body\" element: Obtain a UIViewRoot instance. Obtain a List of component resources targeted for this \"body\" element with a call to UIViewRoot.getComponentResources() with the String \"body\" as the argument. Render the ending element tag. Iterate over the returned List of UIComponent instances and call encodeAll on each UIComponent instance. Any attributes declared on the element must be passed through unmodified to the rendered output.", "attribute": [ { "description": "Direction indication for text that does not inherit directionality. Valid values are \"LTR\" (left-to-right) and \"RTL\" (right-to-left).", @@ -558,7 +558,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -567,10 +567,10 @@ }, { "name": "commandButton", - "description": "Renders an HTML \"input\" element. Decode Behavior Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. If the value in the Map for the value of the \"clientId\" property of the component is null, create a String by concatenating the value of the \"clientId\" property of the component with the String \".x\" (without the quotes). Create another String in the same manner, but concatenate \".y\" (without the quotes). If null is the value in the Map for both Strings, return from decode(). If the value in the Map for the value of the \"clientId\" property of the component is not null, get the value of the \"type\" attribute, and convert it to lower case. If the result is equal to the String \"reset\" (without the quotes), return from decode(). Otherwise, create a jakarta.faces.event.ActionEvent around the component, and pass it to the queueEvent() method of the component, which must be an instance of UICommand. Encode Behavior Render the clientId of the component as the value of the \"name\" attribute. Render the current value of the component as the value of the \"value\" attribute. If \"image\" attribute is specified render it as the value of the \"src\" attribute after passing it to the getResourceURL() method of the ViewHandler for this application, and passing the result through the encodeResourceURL() method of the ExternalContext. Note that calling getResourceURL() will prefix the context-root of the current application if the value of the \"src\" attribute starts with \"/\". When handling the \"image\" attribute, the value must not be escaped. For example, & must not be turned into &. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute. If the user has specified an \"onclick\" attribute, append that JavaScript to any existing JavaScript before rendering. If the component being rendered by this renderer has any UIParameter children, each one of them must be rendered using the renderer for component-family: \"jakarta.faces.Input\" and renderer-type: \"jakarta.faces.Hidden\". For discussion, this is called the hiddenRenderer. A component with component-type \"jakarta.faces.Input\" must be created for local use in rendering each UIParameter child. The \"id\" property of the temporary component must be set to the \"name\" of the UIParameter. The \"value\" property of the temporary component must be set to the \"value\" of the UIParameter. For each UIParameter child, the hiddenRenderer must have its encodeBegin(), encodeChildren(), and encodeEnd() methods called, in order, passing the temporary component as the second argument.", + "description": "Renders an HTML \"input\" element. Decode Behavior Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. If the value in the Map for the value of the \"clientId\" property of the component is null, create a String by concatenating the value of the \"clientId\" property of the component with the String \".x\" (without the quotes). Create another String in the same manner, but concatenate \".y\" (without the quotes). If null is the value in the Map for both Strings, return from decode(). If the value in the Map for the value of the \"clientId\" property of the component is not null, get the value of the \"type\" attribute, and convert it to lower case. If the result is equal to the String \"reset\" (without the quotes), return from decode(). Otherwise, create a jakarta.faces.event.ActionEvent around the component, and pass it to the queueEvent() method of the component, which must be an instance of UICommand. Encode Behavior Render the clientId of the component as the value of the \"name\" attribute. Render the current value of the component as the value of the \"value\" attribute. If \"image\" attribute is specified render it as the value of the \"src\" attribute after passing it to the getResourceURL() method of the ViewHandler for this application, and passing the result through the encodeResourceURL() method of the ExternalContext. Note that calling getResourceURL() will prefix the context-root of the current application if the value of the \"src\" attribute starts with \"/\". When handling the \"image\" attribute, the value must not be escaped. For example, & must not be turned into &. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute. If the user has specified an \"onclick\" attribute, append that JavaScript to any existing JavaScript before rendering. If the component being rendered by this renderer has any UIParameter children, each one of them must be rendered using the renderer for component-family: \"jakarta.faces.Input\" and renderer-type: \"jakarta.faces.Hidden\". For discussion, this is called the hiddenRenderer. A component with component-type \"jakarta.faces.Input\" must be created for local use in rendering each UIParameter child. The \"id\" property of the temporary component must be set to the \"name\" of the UIParameter. The \"value\" property of the temporary component must be set to the \"value\" of the UIParameter. For each UIParameter child, the hiddenRenderer must have its encodeBegin(), encodeChildren(), and encodeEnd() methods called, in order, passing the temporary component as the second argument.", "attribute": [ { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -783,10 +783,10 @@ }, { "name": "commandLink", - "description": "Render an HTML \"a\" anchor element that acts like a form submit button when clicked. General Behaviour Both the encode and decode behavior require the ability to get the id/name for a hidden field, which may be rendered in markup or which may be programmatically added via client DOM manipulation, whose value is set by the JavaScript form submit. This name must be constructed as follows: Get the clientId for the form of which this component is a child. Append NamingContainer.SEPARATOR_CHAR. Append a constant string that is the same for all command link components in the tree. In the following text, this String is called hiddenFieldName. Decode Behavior Obtain the \"clientId\" property of the component. Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. Derive hiddenFieldName as above. Get the entry in the Map under the key that is the hiddenFieldName. If the there is no entry, or the entry is the empty String, or the entry is not equal to the value of the \"clientId\" property, return immediately. If there is an entry, and its value is equal to the value of the \"clientId\" property, create a new jakarta.faces.event.ActionEvent instance around the component and call queueActionEvent() on the component, passing the event. Encode Behavior If the value of the disabled attribute is true, render a span element. Render all the passthru attributes and the target attribute as pass-through attributes on the span, even though the target attribute will have no effect on a span. Render the current value of the component as the content of the span. Return. If the disabled attribute is not present, or its value is false, render an HTML a element. Render \"#\" as the value of the \"href\" attribute. Render the current value of the component as the link text if it is specified. Render JavaScript that is functionally equivalent to the following as the value of the \"onclick\" attribute: document.forms['CLIENT_ID']['hiddenFieldName'].value='CLIENT_ID'; document.forms['CLIENT_ID']['PARAM1_NAME'].value='PARAM1_VALUE'; document.forms['CLIENT_ID']['PARAM2_NAME'].value='PARAM2_VALUE'; return false; document.forms['CLIENT_ID'].submit()\" where hiddenFieldName is as described above, CLIENT_ID is the clientId of the UICommand component, PARAM*_NAME and PARAM*_VALUE are the names and values, respectively, of any nested UIParameter children. The name and the value must be URLEncoded. If an \"onclick\" attribute was specified by the user, render this JavaScript in a function, and render the user's JavaScript in a function. Render both functions in a choice function as follows: var a=function(){#USER_FUNCTION#}; var b=function(){#JSF_FUNCTION#}; return (a()==false) ? false : b(); where #USER_FUNCTION# is the user's JavaScript and #JSF_FUNCTION# is the JavaScript rendered by Faces. The choice function should operate such that if the user's JavaScript returns true, then the rendered JavaScript will also execute. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute. Render any non-UIParameter output children as normal inside of the \"a\" element. These will appear as the link text. Allow the form renderer to output a single \"input\" element (for the entire page, regardless of how many command link components are in the page) of \"type\" \"hidden\" whose \"name\" is the value of hiddenFieldName, and which must not have a \"value\" attribute. Multiple occurrences of command link components in the tree should not cause multiple hiddenFieldName hidden fields. Allow the form renderer to output an \"input\" element of \"type\" \"hidden\" for each of the nested UIParameter children, taking the name property (but not the value) from each one in turn. If the \"disabled\" attribute is specified, do not render the HTML \"a\" anchor element or its \"href\" attribute. Instead, render a \"span\" element. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute on the \"span\". Render any pass-through attributes on the \"span\". The content of the span element comes from the value of the component or its children as specified above. If the user specified a target attribute, its value must be set using javascript since the onclick handler will prevent the target attribute from being generated. This must be accomplished using JavaScript that is equivalent to the following. document.forms['CLIENT_ID'].target='TARGET'; Where TARGET is the value of the target attribute on the JSP tag.", + "description": "Render an HTML \"a\" anchor element that acts like a form submit button when clicked. General Behaviour Both the encode and decode behavior require the ability to get the id/name for a hidden field, which may be rendered in markup or which may be programmatically added via client DOM manipulation, whose value is set by the JavaScript form submit. This name must be constructed as follows: Get the clientId for the form of which this component is a child. Append NamingContainer.SEPARATOR_CHAR. Append a constant string that is the same for all command link components in the tree. In the following text, this String is called hiddenFieldName. Decode Behavior Obtain the \"clientId\" property of the component. Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. Derive hiddenFieldName as above. Get the entry in the Map under the key that is the hiddenFieldName. If the there is no entry, or the entry is the empty String, or the entry is not equal to the value of the \"clientId\" property, return immediately. If there is an entry, and its value is equal to the value of the \"clientId\" property, create a new jakarta.faces.event.ActionEvent instance around the component and call queueActionEvent() on the component, passing the event. Encode Behavior If the value of the disabled attribute is true, render a span element. Render all the passthru attributes and the target attribute as pass-through attributes on the span, even though the target attribute will have no effect on a span. Render the current value of the component as the content of the span. Return. If the disabled attribute is not present, or its value is false, render an HTML a element. Render \"#\" as the value of the \"href\" attribute. Render the current value of the component as the link text if it is specified. Render JavaScript that is functionally equivalent to the following as the value of the \"onclick\" attribute: document.forms['CLIENT_ID']['hiddenFieldName'].value='CLIENT_ID'; document.forms['CLIENT_ID']['PARAM1_NAME'].value='PARAM1_VALUE'; document.forms['CLIENT_ID']['PARAM2_NAME'].value='PARAM2_VALUE'; return false; document.forms['CLIENT_ID'].submit()\" where hiddenFieldName is as described above, CLIENT_ID is the clientId of the UICommand component, PARAM*_NAME and PARAM*_VALUE are the names and values, respectively, of any nested UIParameter children. The name and the value must be URLEncoded. If an \"onclick\" attribute was specified by the user, render this JavaScript in a function, and render the user's JavaScript in a function. Render both functions in a choice function as follows: var a=function(){#USER_FUNCTION#}; var b=function(){#JSF_FUNCTION#}; return (a()==false) ? false : b(); where #USER_FUNCTION# is the user's JavaScript and #JSF_FUNCTION# is the JavaScript rendered by Faces. The choice function should operate such that if the user's JavaScript returns true, then the rendered JavaScript will also execute. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute. Render any non-UIParameter output children as normal inside of the \"a\" element. These will appear as the link text. Allow the form renderer to output a single \"input\" element (for the entire page, regardless of how many command link components are in the page) of \"type\" \"hidden\" whose \"name\" is the value of hiddenFieldName, and which must not have a \"value\" attribute. Multiple occurrences of command link components in the tree should not cause multiple hiddenFieldName hidden fields. Allow the form renderer to output an \"input\" element of \"type\" \"hidden\" for each of the nested UIParameter children, taking the name property (but not the value) from each one in turn. If the \"disabled\" attribute is specified, do not render the HTML \"a\" anchor element or its \"href\" attribute. Instead, render a \"span\" element. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute on the \"span\". Render any pass-through attributes on the \"span\". The content of the span element comes from the value of the component or its children as specified above. If the user specified a target attribute, its value must be set using javascript since the onclick handler will prevent the target attribute from being generated. This must be accomplished using JavaScript that is equivalent to the following. document.forms['CLIENT_ID'].target='TARGET'; Where TARGET is the value of the target attribute on the JSP tag.", "attribute": [ { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -1005,7 +1005,7 @@ }, { "name": "commandScript", - "description": "Render a JavaScript function that invokes faces.ajax.request() function. Encode Behavior Render an HTML script element. If the value of the \"name\" attribute does not contain a period . indicating a namespaced function name, then render JavaScript var keyword, followed by a space character. Render the value of the \"name\" attribute, followed by JavaScript assignment operator. Render JavaScript function which invokes faces.ajax.request() with data provided by execute, render, onbegin, oncomplete, onsuccess and onerror arguments, if any. If the component being rendered has any UIParameter children, each one of them must be encoded into params object of the options object of the faces.ajax.request() function. If the rendered JavaScript function is invoked with an object argument, each property must be encoded into params object of the options object of the faces.ajax.request() function. This will override any property with the same key. Decode Behavior Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. If the value in the Map for the value of the \"jakarta.faces.source\" equals to the \"clientId\" property of the component, create a jakarta.faces.event.ActionEvent around the component, and pass it to the queueEvent() method of the component, which must be an instance of UICommand.", + "description": "Render a JavaScript function that invokes faces.ajax.request() function. Encode Behavior Render an HTML script element. If the value of the \"name\" attribute does not contain a period . indicating a namespaced function name, then render JavaScript var keyword, followed by a space character. Render the value of the \"name\" attribute, followed by JavaScript assignment operator. Render JavaScript function which invokes faces.ajax.request() with data provided by execute, render, onbegin, oncomplete, onsuccess and onerror arguments, if any. If the component being rendered has any UIParameter children, each one of them must be encoded into params object of the options object of the faces.ajax.request() function. If the rendered JavaScript function is invoked with an object argument, each property must be encoded into params object of the options object of the faces.ajax.request() function. This will override any property with the same key. Decode Behavior Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. If the value in the Map for the value of the \"jakarta.faces.source\" equals to the \"clientId\" property of the component, create a jakarta.faces.event.ActionEvent around the component, and pass it to the queueEvent() method of the component, which must be an instance of UICommand.", "attribute": [ { "description": "The component identifier for this component. This value must be unique within the closest parent component that is a naming container.", @@ -1089,7 +1089,7 @@ }, { "name": "dataTable", - "description": "Renders an HTML \"table\" element compliant with the HTML 401 specification. Render the \"caption\" facet, if present, inside a \"caption\" element immediately below the \"table\" element. If the \"captionClass\" attribute is specified, render its value as the value of the \"class\" attribute on the \"caption\" element. If the \"captionStyle\" attribute is specified, render its value as the value of the \"style\" attribute on the \"caption\" element. Please consult the javadoc for UIData to supplement this specification. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute on the \"table\" element. Any pass-through attributes are also rendered on the \"table\" element. Column Groups If the UIData component has a \"colgroups\" facet, render its contents. Consistent with the rules of facets in general, this facet must have only one child. In general, this will be a panel group component that will contain colgroup and col elements per the HTML Table specification. Use of column grouping can improve accessibility. This facet must be rendered before the table header and footer. Rendering the header If the UIData component has a \"header\" facet, or any of the child UIColumn components has a \"header\" facet, render a \"thead\" element. If the UIData component has a \"header\" facet, encode its contents inside of \"tr\" and \"th\" elements, respectively. Output the value of the \"headerClass\" attribute of the UIData component, if present, as the value of the \"class\" attribute on the \"th\". Output the number of child UIColumn components of the UIData component as the value of the \"colspan\" attribute on the \"th\". Output \"colgroup\" as the value of the \"scope\" attribute on the \"th\" element. If any of the child UIColumn components has a \"header\" facet render a \"tr\" element. For each UIColumn that actually has a \"header\" facet, render it inside of a \"th\" element. Columns that don't have a \"header\" facet cause an empty \"th\" element to be rendered. Output the value of the \"headerClass\" attribute of the UIColumn component, if present, as the value of the \"class\" attribute on the \"th\". If the \"headerClass\" attribute of the UIColumn component is not present, output the value of the \"headerClass\" attribute of the UIData component, if present, as the value of the \"class\" attribute on the \"th\". Output \"col\" as the value of the \"scope\" attribute on the \"th\" element. Close out the \"thead\" element. Rendering the footer Follow the same process as for the header, except replace \"header\" with \"footer\", \"th\" with \"td\", \"thead\" with \"tfoot\", and \"headerClass\" with \"footerClass\". Do not render any \"scope\" attribute for the footer. Rendering the table body Look at the value of the \"bodyrows\" attribute. If present, this must be a comma separated list of integers. Each entry in this list is the row index of the row before which a \"tbody\" element should be rendered. If there was no \"bodyrows\" attribute, or it was empty, render a \"tbody\" element. Keep track of the result of the \"rows\" property on the UIData component. Keep track of the number of rows we have rendered so far. Iterate through the rows. Set the \"rowIndex\" property of the UIData component to be correct as we iterate through the rows. Stop rendering children and close out the \"tbody\" element if the \"rowAvailable\" property of the UIData returned false. If the current row index is contained in the \"bodyrows\" attribute, check if a \"tbody\" start element was rendered that needs to be closed, and if so, close the \"tbody\" element. Then render a \"tbody\" element start. Otherwise, do not render a \"tbody\" element. Output a \"tr\" element. Output the value of the \"rowClasses\" per the attribute description below. For each UIColumn child, if the column component has a \"rowHeader\" attribute with a value of \"true\", output a \"th\" element with a \"scope\" attribute with the value of \"row\". Otherwise, if the column component has no \"rowHeader\" attribute, or its value is false, output a \"td\" element. In either case attach the value of the \"columnClasses\" attribute of the UIData component per the attribute description below. Recursively encode each child of each UIColumn child. Close out the \"td\" or \"th\" element. When done with the row, close out the \"tr\" element. When done with all the rows, close out the \"tbody\" element. When done rendering all the rows, set the \"rowIndex\" property of the UIData to -1, and close out the \"table\" element.", + "description": "Renders an HTML \"table\" element compliant with the HTML 401 specification. Render the \"caption\" facet, if present, inside a \"caption\" element immediately below the \"table\" element. If the \"captionClass\" attribute is specified, render its value as the value of the \"class\" attribute on the \"caption\" element. If the \"captionStyle\" attribute is specified, render its value as the value of the \"style\" attribute on the \"caption\" element. Please consult the javadoc for UIData to supplement this specification. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute on the \"table\" element. Any pass-through attributes are also rendered on the \"table\" element. Column Groups If the UIData component has a \"colgroups\" facet, render its contents. Consistent with the rules of facets in general, this facet must have only one child. In general, this will be a panel group component that will contain colgroup and col elements per the HTML Table specification. Use of column grouping can improve accessibility. This facet must be rendered before the table header and footer. Rendering the header If the UIData component has a \"header\" facet, or any of the child UIColumn components has a \"header\" facet, render a \"thead\" element. If the UIData component has a \"header\" facet, encode its contents inside of \"tr\" and \"th\" elements, respectively. Output the value of the \"headerClass\" attribute of the UIData component, if present, as the value of the \"class\" attribute on the \"th\". Output the number of child UIColumn components of the UIData component as the value of the \"colspan\" attribute on the \"th\". Output \"colgroup\" as the value of the \"scope\" attribute on the \"th\" element. If any of the child UIColumn components has a \"header\" facet render a \"tr\" element. For each UIColumn that actually has a \"header\" facet, render it inside of a \"th\" element. Columns that don't have a \"header\" facet cause an empty \"th\" element to be rendered. Output the value of the \"headerClass\" attribute of the UIColumn component, if present, as the value of the \"class\" attribute on the \"th\". If the \"headerClass\" attribute of the UIColumn component is not present, output the value of the \"headerClass\" attribute of the UIData component, if present, as the value of the \"class\" attribute on the \"th\". Output \"col\" as the value of the \"scope\" attribute on the \"th\" element. Close out the \"thead\" element. Rendering the footer Follow the same process as for the header, except replace \"header\" with \"footer\", \"th\" with \"td\", \"thead\" with \"tfoot\", and \"headerClass\" with \"footerClass\". Do not render any \"scope\" attribute for the footer. Rendering the table body Look at the value of the \"bodyrows\" attribute. If present, this must be a comma separated list of integers. Each entry in this list is the row index of the row before which a \"tbody\" element should be rendered. If there was no \"bodyrows\" attribute, or it was empty, render a \"tbody\" element. Keep track of the result of the \"rows\" property on the UIData component. Keep track of the number of rows we have rendered so far. Iterate through the rows. Set the \"rowIndex\" property of the UIData component to be correct as we iterate through the rows. Stop rendering children and close out the \"tbody\" element if the \"rowAvailable\" property of the UIData returned false. If the current row index is contained in the \"bodyrows\" attribute, check if a \"tbody\" start element was rendered that needs to be closed, and if so, close the \"tbody\" element. Then render a \"tbody\" element start. Otherwise, do not render a \"tbody\" element. Output a \"tr\" element. Output the value of the \"rowClasses\" per the attribute description below. For each UIColumn child, if the column component has a \"rowHeader\" attribute with a value of \"true\", output a \"th\" element with a \"scope\" attribute with the value of \"row\". Otherwise, if the column component has no \"rowHeader\" attribute, or its value is false, output a \"td\" element. In either case attach the value of the \"columnClasses\" attribute of the UIData component per the attribute description below. Recursively encode each child of each UIColumn child. Close out the \"td\" or \"th\" element. When done with the row, close out the \"tr\" element. When done with all the rows, close out the \"tbody\" element. When done rendering all the rows, set the \"rowIndex\" property of the UIData to -1, and close out the \"table\" element.", "attribute": [ { "description": "Zero-relative row number of the first row to be displayed. If this property is set to zero, rendering will begin with the first row of the underlying data.", @@ -1313,7 +1313,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -1322,7 +1322,7 @@ }, { "name": "form", - "description": "Renders an HTML \"form\" element. Decode Behavior Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. If the map contains an entry for the \"clientId\" of this UIForm component, call setSubmitted(true) on the form, otherwise call setSubmitted(false) on the form. Encode Behavior The value of the \"method\" attribute must be \"post\". The value of the \"action\" attribute must be the result of passing the view identifier of the current view to the getActionURL() method of the ViewHandler for this application, then passing that String to the encodeActionURL() method on the ExternalContext. The value of the acceptcharset attribute must be rendered as the value of \"accept-charset\". If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute. Render a \"name\" attribute with a value the same as the \"id\" attribute as described in \"General Notes on Encoding\" regarding the \"id\" attribute for UIInput components. Obtain the UIViewRoot view identifier and use it to obtain an action URL by calling ViewHandler.getActionURL. Use the action URL to obtain an encoded action URL by calling ExternalContext.encodeActionURL. Obtain an encoded partial action URL by calling ExternalContext.encodePartialActionURL using action URL as the argument. Compare the result from ExternalContext.encodePartialActionURL with the value from ExternalContext.encodeActionURL(). If they are different, render a hidden field with the name jakarta.faces.encodedURL and the value of this hidden field as the value from ExternalContext.encodePartialActionURL. Call ViewHandler.writeState() before the the close of the \"form\" element. Render all the necessary hidden fields for all commandLink instances in the page just before the close of the \"form\" element. Just before rendering the closing element tag, render any resources that have been targeted for this form: Obtain a UIViewRoot instance. Obtain a List of component resources targeted for this form with a call to UIViewRoot.getComponentResources() with the String \"form\" as the argument. Iterate over the returned List of UIComponent instances and call encodeAll on each UIComponent instance.", + "description": "Renders an HTML \"form\" element. Decode Behavior Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. If the map contains an entry for the \"clientId\" of this UIForm component, call setSubmitted(true) on the form, otherwise call setSubmitted(false) on the form. Encode Behavior The value of the \"method\" attribute must be \"post\". The value of the \"action\" attribute must be the result of passing the view identifier of the current view to the getActionURL() method of the ViewHandler for this application, then passing that String to the encodeActionURL() method on the ExternalContext. The value of the acceptcharset attribute must be rendered as the value of \"accept-charset\". If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute. Render a \"name\" attribute with a value the same as the \"id\" attribute as described in \"General Notes on Encoding\" regarding the \"id\" attribute for UIInput components. Obtain the UIViewRoot view identifier and use it to obtain an action URL by calling ViewHandler.getActionURL. Use the action URL to obtain an encoded action URL by calling ExternalContext.encodeActionURL. Obtain an encoded partial action URL by calling ExternalContext.encodePartialActionURL using action URL as the argument. Compare the result from ExternalContext.encodePartialActionURL with the value from ExternalContext.encodeActionURL(). If they are different, render a hidden field with the name jakarta.faces.encodedURL and the value of this hidden field as the value from ExternalContext.encodePartialActionURL. Call ViewHandler.writeState() before the the close of the \"form\" element. Render all the necessary hidden fields for all commandLink instances in the page just before the close of the \"form\" element. Just before rendering the closing element tag, render any resources that have been targeted for this form: Obtain a UIViewRoot instance. Obtain a List of component resources targeted for this form with a call to UIViewRoot.getComponentResources() with the String \"form\" as the argument. Iterate over the returned List of UIComponent instances and call encodeAll on each UIComponent instance.", "attribute": [ { "description": "The component identifier for this component. This value must be unique within the closest parent component that is a naming container.", @@ -1475,7 +1475,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -1484,7 +1484,7 @@ }, { "name": "graphicImage", - "description": "Renders an HTML \"img\" element. Render the clientId as the value of the \"id\" attribute. Handling the Value If the \"name\" attribute is present, execute algorithm Common Algorithm for Obtaining A Resource to Render to obtain a Resource instance. Call Resource.getRequestPath() and output the result as the value of the \"src\" attribute on the rendered markup. Otherwise, if the \"url\" attribute is present, treat its value as if it was the value of the \"value\" attribute. Otherwise, if the \"value\" attribute is present, render the value of the component as the value of the \"src\" attribute, after passing it to the getResourceURL() method of the ViewHandler for this application, and passing the result through the encodeResourceURL() method of the ExternalContext. When handling the \"src\" attribute, the value must not be escaped. For example, & must not be turned into &. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute.", + "description": "Renders an HTML \"img\" element. Render the clientId as the value of the \"id\" attribute. Handling the Value If the \"name\" attribute is present, execute algorithm Common Algorithm for Obtaining A Resource to Render to obtain a Resource instance. Call Resource.getRequestPath() and output the result as the value of the \"src\" attribute on the rendered markup. Otherwise, if the \"url\" attribute is present, treat its value as if it was the value of the \"value\" attribute. Otherwise, if the \"value\" attribute is present, render the value of the component as the value of the \"src\" attribute, after passing it to the getResourceURL() method of the ViewHandler for this application, and passing the result through the encodeResourceURL() method of the ExternalContext. When handling the \"src\" attribute, the value must not be escaped. For example, & must not be turned into &. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute.", "attribute": [ { "description": "The component identifier for this component. This value must be unique within the closest parent component that is a naming container.", @@ -1655,7 +1655,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -1664,7 +1664,7 @@ }, { "name": "inputHidden", - "description": "Renders an HTML \"input\" element of type \"hidden\". Decode Behavior See the decode description for the Input Text renderer. Encode Behavior Render the clientId of the component as the value of the \"name\" attribute. Render the current value of the component as the value of the \"value\" attribute.", + "description": "Renders an HTML \"input\" element of type \"hidden\". Decode Behavior See the decode description for the Input Text renderer. Encode Behavior Render the clientId of the component as the value of the \"name\" attribute. Render the current value of the component as the value of the \"value\" attribute.", "attribute": [ { "description": "Converter instance registered with this component.", @@ -1742,7 +1742,7 @@ }, { "name": "inputSecret", - "description": "Renders an HTML \"input\" element of \"type\" \"password\". Decode Behavior See the decode description for the Input Text renderer. Encode Behavior Render the clientId of the component as the value of the \"name\" attribute. Render the current value of the component as the value of the \"value\" attribute, if and only if the \"redisplay\" component attribute is the string \"true\". If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute.", + "description": "Renders an HTML \"input\" element of \"type\" \"password\". Decode Behavior See the decode description for the Input Text renderer. Encode Behavior Render the clientId of the component as the value of the \"name\" attribute. Render the current value of the component as the value of the \"value\" attribute, if and only if the \"redisplay\" component attribute is the string \"true\". If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute.", "attribute": [ { "description": "Converter instance registered with this component.", @@ -1985,7 +1985,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -1994,7 +1994,7 @@ }, { "name": "inputText", - "description": "Renders an HTML \"input\" element of \"type\" \"text\". Decode Behavior Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. If the Map contains an entry for the \"clientId\" of the component, pass the value of the entry to the setSubmittedValue() method of the component, which must be an instance of EditableValueHolder. Encode Behavior Render the clientId of the component as the value of the \"name\" attribute. Render the current value of the component as the value of the \"value\" attribute. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute.", + "description": "Renders an HTML \"input\" element of \"type\" \"text\". Decode Behavior Obtain the Map from the \"requestParameterMap\" property of the ExternalContext. If the Map contains an entry for the \"clientId\" of the component, pass the value of the entry to the setSubmittedValue() method of the component, which must be an instance of EditableValueHolder. Encode Behavior Render the clientId of the component as the value of the \"name\" attribute. Render the current value of the component as the value of the \"value\" attribute. If the \"styleClass\" attribute is specified, render its value as the value of the \"class\" attribute.", "attribute": [ { "description": "Converter instance registered with this component.", @@ -2243,7 +2243,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -2252,7 +2252,7 @@ }, { "name": "inputTextarea", - "description": "Renders an HTML \"textarea\" element. Decode Behavior See the encode description for the Input Text renderer. Encode Behavior Render the clientId as the value of the \"name\" attribute. Render the current valu eof the component inside the \"textarea\" element.", + "description": "Renders an HTML \"textarea\" element. Decode Behavior See the encode description for the Input Text renderer. Encode Behavior Render the clientId as the value of the \"name\" attribute. Render the current valu eof the component inside the \"textarea\" element.", "attribute": [ { "description": "Converter instance registered with this component.", @@ -2483,7 +2483,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -2492,7 +2492,7 @@ }, { "name": "message", - "description": "Render a single message for a specific component. Set-up for Rendering Obtain the \"summary\" and \"detail\" properties from UIMessage component. If not present, keep the empty string as the value, respectively. Obtain the first FacesMessage to render from the component, using the \"for\" property of the UIMessage. This will be the only message we render. Obtain the severity style for this message. If the severity of the message is FacesMessage.SEVERITY_INFO, the severity style comes from the value of the \"infoStyle\" attribute. If the severity of the message is FacesMessage.SEVERITY_WARN, the severity style comes from the value of the \"warnStyle\" attribute, and so on for each of the severities, INFO, WARN, ERROR and FATAL. The same rules apply for obtaining the severity style class, but instead of \"infoStyle, warnStyle\", etc use \"infoClass, warnClass\", etc. Obtain the \"style\", \"styleClass\" and \"layout\" attributes from the UIMessage component. If we have a \"style\" attribute and a severity style attribute, use the severity style attribute as the value of the \"style\" attribute. If we have no \"style\" attribute, but do have a severity style, use the severity style as the value of the \"style\" attribute. The same precedence rules apply for the style class. Obtain the value of the dir and lang attributes. Rendering For the message renderer, we only render one row, for the first message. For the messages renderer, we render as many rows as we have messages. If any of the \"dir\", \"lang\", \"style\" or \"styleClass\" attributes has a non-null value (as determined above), render a \"span\" element, outputting the value of the \"style\" attribute as the the value of the \"style\" attribute, and outputting the value of the \"styleClass\" attribute as the value of the \"class\" attribute on the \"span\" element. Output the \"dir\" and \"lang\" attributes as well, if they are present. If the UIMessage has a \"tooltip\" attribute with the value of \"true\", and the UIMessage has \"showSummary\" and \"showDetail\" properties with the value \"true\", if we haven't already written out the \"span\", output the \"summary\" as the value of the \"title\" attribute on the \"span\". If we haven't already written out a \"title\" attribute, and \"showSummary\" is true, output the summary. If \"showDetail\" is true, output the detail. Close out the span if necessary.", + "description": "Render a single message for a specific component. Set-up for Rendering Obtain the \"summary\" and \"detail\" properties from UIMessage component. If not present, keep the empty string as the value, respectively. Obtain the first FacesMessage to render from the component, using the \"for\" property of the UIMessage. This will be the only message we render. Obtain the severity style for this message. If the severity of the message is FacesMessage.SEVERITY_INFO, the severity style comes from the value of the \"infoStyle\" attribute. If the severity of the message is FacesMessage.SEVERITY_WARN, the severity style comes from the value of the \"warnStyle\" attribute, and so on for each of the severities, INFO, WARN, ERROR and FATAL. The same rules apply for obtaining the severity style class, but instead of \"infoStyle, warnStyle\", etc use \"infoClass, warnClass\", etc. Obtain the \"style\", \"styleClass\" and \"layout\" attributes from the UIMessage component. If we have a \"style\" attribute and a severity style attribute, use the severity style attribute as the value of the \"style\" attribute. If we have no \"style\" attribute, but do have a severity style, use the severity style as the value of the \"style\" attribute. The same precedence rules apply for the style class. Obtain the value of the dir and lang attributes. Rendering For the message renderer, we only render one row, for the first message. For the messages renderer, we render as many rows as we have messages. If any of the \"dir\", \"lang\", \"style\" or \"styleClass\" attributes has a non-null value (as determined above), render a \"span\" element, outputting the value of the \"style\" attribute as the the value of the \"style\" attribute, and outputting the value of the \"styleClass\" attribute as the value of the \"class\" attribute on the \"span\" element. Output the \"dir\" and \"lang\" attributes as well, if they are present. If the UIMessage has a \"tooltip\" attribute with the value of \"true\", and the UIMessage has \"showSummary\" and \"showDetail\" properties with the value \"true\", if we haven't already written out the \"span\", output the \"summary\" as the value of the \"title\" attribute on the \"span\". If we haven't already written out a \"title\" attribute, and \"showSummary\" is true, output the summary. If \"showDetail\" is true, output the detail. Close out the span if necessary.", "attribute": [ { "description": "Client identifier of the component for which to display messages.", @@ -2615,7 +2615,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -2624,7 +2624,7 @@ }, { "name": "messages", - "description": "The same as for the Message renderer, but output all the messages. If an \"id\" attribute has been specified, it must be rendered on the outermost markup corresponding to this component. If the value of the \"layout\" attribute is \"table\", render nested \"table\", \"tr\", and \"td\" elements, in that order. If the value of the \"layout\" attribute is \"list\", or the \"layout\" attribute is not specified, render nested \"ul\", \"li\" elements, in that order. Output the value of the \"style\" attribute as the value of the \"style\" attribute, output the value of the \"styleClass\" attribute as the value of the \"class\" attribute, and output the dir and lang attributes. Output these values on the \"table\" element or the \"ul\" element. Output the values of the \"errorStyle\", \"fatalStyle\", \"infoStyle\", \"warnStyle\" attributes as the value of the \"style\" attribute on either the \"tr\" element or the \"li\" element. Output the values of the \"errorClass\", \"fatalClass\", \"infoClass\", \"warnClass\" attributes as the value of the \"class\" attribute on either the \"tr\" element or the \"li\" element. The component is a UIMessages, and there is no \"for\" attribute. Therefore, use either null to obtain the messages from the FacesContext or the empty string if the components \"globalOnly\" property is true. If the layout was \"table\" close out the table elements, otherwise, close out the list elements. If an h:form does not contain a h:messages tag and the ProjectStage is set to Development the runtime will automatically add h:messages for debugging purposes.", + "description": "The same as for the Message renderer, but output all the messages. If an \"id\" attribute has been specified, it must be rendered on the outermost markup corresponding to this component. If the value of the \"layout\" attribute is \"table\", render nested \"table\", \"tr\", and \"td\" elements, in that order. If the value of the \"layout\" attribute is \"list\", or the \"layout\" attribute is not specified, render nested \"ul\", \"li\" elements, in that order. Output the value of the \"style\" attribute as the value of the \"style\" attribute, output the value of the \"styleClass\" attribute as the value of the \"class\" attribute, and output the dir and lang attributes. Output these values on the \"table\" element or the \"ul\" element. Output the values of the \"errorStyle\", \"fatalStyle\", \"infoStyle\", \"warnStyle\" attributes as the value of the \"style\" attribute on either the \"tr\" element or the \"li\" element. Output the values of the \"errorClass\", \"fatalClass\", \"infoClass\", \"warnClass\" attributes as the value of the \"class\" attribute on either the \"tr\" element or the \"li\" element. The component is a UIMessages, and there is no \"for\" attribute. Therefore, use either null to obtain the messages from the FacesContext or the empty string if the components \"globalOnly\" property is true. If the layout was \"table\" close out the table elements, otherwise, close out the list elements. If an h:form does not contain a h:messages tag and the ProjectStage is set to Development the runtime will automatically add h:messages for debugging purposes.", "attribute": [ { "description": "Client identifier of the component for which to display messages. This attribute is mutually exclusive with globalOnly and take precedence if used.", @@ -2831,7 +2831,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -2999,7 +2999,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -3209,7 +3209,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -3218,7 +3218,7 @@ }, { "name": "outputStylesheet", - "description": "Render the markup for a element that renders the style Resource specified by the optional name and library attributes. Decode Behavior No action is required during decode for this renderer. Encode Behavior Use the algorithm Common Encode Behavior for encodeBegin(), encodeChildren() and getRendersChildren(). For encodeEnd(), use the algorithm Common Algorithm for Obtaining A Resource to Render to obtain a reference to the Resource to be encoded. Output a element. Use the result from calling resource.getRequestPath() as the value of the \"href\" attribute. Use the result from calling resource.getContentType() as the value of the \"type\" attribute, unless the value equals text/css and the current doctype is a HTML5 doctype.. Use the literal string \"stylesheet\" as the value of the \"rel\" attribute, and the literal string \"screen\" as the value of the \"media\" attribute. The implementation of this renderer must have a @ListenerFor annotation attached to it, at the class level, declaring PostAddToViewEvent.class as the value of the systemEventClass attribute. The presence of this annotation on a renderer implies the renderer implements ComponentSystemEventListener, which this renderer must do. The implementation of processEvent() must extract the UIComponent from the argument event pass it to UIViewRoot.addComponentResource(), specifying the literal string \"head\" as the last argument. The stylsheet renderer must ensure that any stylesheets are included in the of the document.", + "description": "Render the markup for a element that renders the style Resource specified by the optional name and library attributes. Decode Behavior No action is required during decode for this renderer. Encode Behavior Use the algorithm Common Encode Behavior for encodeBegin(), encodeChildren() and getRendersChildren(). For encodeEnd(), use the algorithm Common Algorithm for Obtaining A Resource to Render to obtain a reference to the Resource to be encoded. Output a element. Use the result from calling resource.getRequestPath() as the value of the \"href\" attribute. Use the result from calling resource.getContentType() as the value of the \"type\" attribute, unless the value equals text/css and the current doctype is a HTML5 doctype.. Use the literal string \"stylesheet\" as the value of the \"rel\" attribute, and the literal string \"screen\" as the value of the \"media\" attribute. The implementation of this renderer must have a @ListenerFor annotation attached to it, at the class level, declaring PostAddToViewEvent.class as the value of the systemEventClass attribute. The presence of this annotation on a renderer implies the renderer implements ComponentSystemEventListener, which this renderer must do. The implementation of processEvent() must extract the UIComponent from the argument event pass it to UIViewRoot.addComponentResource(), specifying the literal string \"head\" as the last argument. The stylsheet renderer must ensure that any stylesheets are included in the of the document.", "attribute": [ { "description": "Converter instance registered with this component.", @@ -3251,7 +3251,7 @@ "type": "java.lang.String" }, { - "description": "The resourceName for this resource. This attribute is required if the stylesheet is NOT inline.", + "description": "The resourceName for this resource. This attribute is required if the stylesheet is NOT inline.", "name": "name", "required": "false", "type": "java.lang.String" @@ -3263,7 +3263,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -3341,7 +3341,7 @@ "type": "jakarta.faces.component.UIComponent" }, { - "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", + "description": "Per the WAI-ARIA spec and its relationship to HTML5 (Section title ARIA Role Attriubute), every HTML element may have a \"role\" attribute whose value must be passed through unmodified on the element on which it is declared in the final rendered markup. The attribute, if specified, must have a value that is a string literal that is, or an EL Expression that evaluates to, a set of space-separated tokens representing the various WAI-ARIA roles that the element belongs to. It is the page author's responsibility to ensure that the user agent is capable of correctly interpreting the value of this attribute.", "name": "role", "required": "false", "type": "java.lang.String" @@ -3350,7 +3350,7 @@ }, { "name": "outputScript", - "description": "Render the markup for a