Class ExpressionCustomizer


  • public class ExpressionCustomizer
    extends java.lang.Object
    A mechanic to allow a certain customization for ExpressionResolver.

    The customization is only scoped to the current request, not a global one. The resource type implementation needs to use this class explicitly to make the customization available in the request scope going forward.

    For example, the resource type implementation of CQ Dialog (/apps/my/dialog) wants to register cqDesign variable so that it can be used in EL expression:

     
     Design design = getDesign();
     ExpressionCustomizer customizer = ExpressionCustomizer.from(request);
     customizer.setVariable("cqDesign", design);
     
     

    Then in the content structure, the content author can use cqDesign variable in the property that accepts EL:

     
     + /apps/content/my/dialog
       - sling:resourceType = "my/dialog"
       + field1
         - sling:resourceType = "my/textfield"
         - value = "${cqDesign.id}"
     
     
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static ExpressionCustomizer from​(ServletRequest request)
      Returns the instance from the given request.
      java.lang.Object getVariable​(java.lang.String name)
      Returns the value of the variable with the given name.
      boolean hasVariable​(java.lang.String name)
      Returns true if there is a variable with the given name; false otherwise.
      void setVariable​(java.lang.String name, java.lang.Object value)
      Creates a variable with the given name and value.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ExpressionCustomizer

        public ExpressionCustomizer()
    • Method Detail

      • from

        @Nonnull
        public static ExpressionCustomizer from​(@Nonnull
                                                ServletRequest request)
        Returns the instance from the given request.
        Parameters:
        request - the current request acting as the scope of the customization
        Returns:
        the instance of the customizer
      • getVariable

        @CheckForNull
        public java.lang.Object getVariable​(@Nonnull
                                            java.lang.String name)
        Returns the value of the variable with the given name.
        Parameters:
        name - the name of the variable
        Returns:
        the value of the variable, or null if there is no variable with that name
      • setVariable

        public void setVariable​(@Nonnull
                                java.lang.String name,
                                @Nonnull
                                java.lang.Object value)
        Creates a variable with the given name and value.

        Setting an existing variable with the same name will overwrite its value.

        Parameters:
        name - the name of the variable
        value - the value of the variable
      • hasVariable

        public boolean hasVariable​(@Nonnull
                                   java.lang.String name)
        Returns true if there is a variable with the given name; false otherwise.
        Parameters:
        name - the name of the variable
        Returns:
        true if there is a variable with the given name; false otherwise