Class ProfileVariableLookup

java.lang.Object
org.apache.commons.lang.text.StrLookup
com.day.cq.mailer.commons.ProfileVariableLookup

public class ProfileVariableLookup extends StrLookup
Implements a StrLookup that is looking up variables from a Authorizable's UserProperties. Additional variables can bee added via a put(String, String). If the key exists in the UserProperties, the value is overwritten with the newly set
Since:
5.4
See Also:
  • Field Details

  • Constructor Details

    • ProfileVariableLookup

      public ProfileVariableLookup(Authorizable authorizable, UserProperties userProperties, Map<String,String> overlays) throws IntrospectionException
      Parameters:
      authorizable - The authorizable for which variables need to be looked up.
      userProperties - The properties of the authorizable.
      overlays - The map of overlays
      Throws:
      IntrospectionException - when not being able to map a string class name to a Class object
  • Method Details

    • lookup

      public String lookup(String variable)
      Looks up a String key to a String value.

      The internal implementation may use any mechanism to return the value. The simplest implementation is to use a Map. However, virtually any implementation is possible.

      For example, it would be possible to implement a lookup that used the key as a primary key, and looked up the value on demand from the database Or, a numeric based implementation could be created that treats the key as an integer, increments the value and return the result as a string - converting 1 to 2, 15 to 16 etc.

      The StrLookup.lookup(String) method always returns a String, regardless of the underlying data, by converting it as necessary. For example:

       Map map = new HashMap();
       map.put("number", new Integer(2));
       assertEquals("2", StrLookup.mapLookup(map).lookup("number"));
       
      Specified by:
      lookup in class StrLookup
      Parameters:
      variable - the key to be looked up, may be null
      Returns:
      the matching value, null if no match
    • put

      public void put(String var, String replace)
      Adds or overwrites a mapping of this replacer.
      Parameters:
      var - name of the variable to map
      replace - the value of the variable