jakartaee / faces

Jakarta Faces
Other
109 stars 55 forks source link

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

Open BalusC opened 1 year ago

BalusC commented 1 year ago

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.

~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 commented 1 year ago

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.