Class 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:
    StrLookup
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String AUTHORIZABLE_ID  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String lookup​(java.lang.String variable)
      Looks up a String key to a String value.
      void put​(java.lang.String var, java.lang.String replace)
      Adds or overwrites a mapping of this replacer.
      • Methods inherited from class java.lang.Object

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

    • Constructor Detail

      • ProfileVariableLookup

        public ProfileVariableLookup​(Authorizable authorizable,
                                     UserProperties userProperties,
                                     java.util.Map<java.lang.String,​java.lang.String> overlays)
                              throws java.beans.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:
        java.beans.IntrospectionException - when not being able to map a string class name to a Class object
    • Method Detail

      • lookup

        public java.lang.String lookup​(java.lang.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​(java.lang.String var,
                        java.lang.String replace)
        Adds or overwrites a mapping of this replacer.
        Parameters:
        var - name of the variable to map
        replace - the value of the variable