faces icon indicating copy to clipboard operation
faces copied to clipboard

String based context params having fixed set of allowed values should be represented by enums

Open BalusC opened this issue 11 months ago • 1 comments

While working on PoC for @FacesConfig annotation having all context params as attributes/constants, https://github.com/eclipse-ee4j/mojarra/blob/4e486bfabe8b08e5b4588ab8e9198e0bd4c30503/impl/src/main/java/jakarta/faces/annotation/FacesConfig.java I noticed the following String based context param values having a fixed set of allowed values such as "auto", "none", etc but these values are in turn not represented by enums such as ProjectStage. We should introduce enums on them in order to have type safety.

  • ~jakarta.faces.CLIENT_WINDOW_MODE --> none and url.~
  • jakarta.faces.STATE_SAVING_METHOD --> client and server.
  • jakarta.faces.VALIDATE_EMPTY_FIELDS --> auto, true and false.

~There's only a slight difficulty with client window mode; the javadoc of ClientWindow.CLIENT_WINDOW_MODE_PARAM_NAME literally says "but other values are possible", we should probably remove this phrase.~ Update: it's definitely freeform. Moreover, MyFaces has its own additional variants already (url-redirect, client).

BalusC avatar Jul 23 '23 12:07 BalusC

Proposal:

For jakarta.faces.STATE_SAVING_METHOD add new enum StateSavingMethod to StateManager. For jakarta.faces.VALIDATE_EMPTY_FIELDS add new enum ValidateEmptyFields to UIInput.

BalusC avatar Oct 14 '23 19:10 BalusC