Class BaseAuthorizableValueMap

java.lang.Object
org.apache.sling.jackrabbit.usermanager.impl.resource.BaseAuthorizableValueMap
All Implemented Interfaces:
Map<String,Object>, ValueMap
Direct Known Subclasses:
AuthorizableValueMap, NestedAuthorizableValueMap

public abstract class BaseAuthorizableValueMap extends Object implements ValueMap
base implementation for ValueMap implementations for Authorizable Resources
  • Field Details

    • log

      protected final org.slf4j.Logger log
      default log
    • fullyRead

      protected boolean fullyRead
    • cache

      protected final Map<String,Object> cache
    • authorizable

      protected org.apache.jackrabbit.api.security.user.Authorizable authorizable
    • systemUserManagerPaths

      protected final SystemUserManagerPaths systemUserManagerPaths
  • Constructor Details

    • BaseAuthorizableValueMap

      protected BaseAuthorizableValueMap(org.apache.jackrabbit.api.security.user.Authorizable authorizable, SystemUserManagerPaths systemUserManagerPaths)
  • Method Details

    • get

      public <T> T get(String name, Class<T> type)
      Description copied from interface: ValueMap
      Get a named property and convert it into the given type. This method does not support conversion into a primitive type or an array of a primitive type. It should return null in this case.
      Specified by:
      get in interface ValueMap
      Type Parameters:
      T - The class of the type
      Parameters:
      name - The name of the property
      type - The class of the type
      Returns:
      Return named value converted to type T or null if non existing or can't be converted.
    • get

      public <T> T get(String name, T defaultValue)
      Description copied from interface: ValueMap
      Get a named property and convert it into the given type. This method does not support conversion into a primitive type or an array of a primitive type. It should return the default value in this case.

      Implementation hint: In the past it was allowed to call this with a 2nd parameter being null. Therefore all implementations should internally call Map.get(Object) when the 2nd parameter has value null.
      Specified by:
      get in interface ValueMap
      Type Parameters:
      T - The expected type
      Parameters:
      name - The name of the property
      defaultValue - The default value to use if the named property does not exist or cannot be converted to the requested type. The default value is also used to define the type to convert the value to. Must not be null. If you want to return null by default rather rely on ValueMap.get(String, Class).
      Returns:
      Return named value converted to type T or the default value if non existing or can't be converted.
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<String,Object>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<String,Object>
    • entrySet

      public Set<Map.Entry<String,Object>> entrySet()
      Specified by:
      entrySet in interface Map<String,Object>
    • get

      public Object get(Object key)
      Specified by:
      get in interface Map<String,Object>
    • keySet

      public Set<String> keySet()
      Specified by:
      keySet in interface Map<String,Object>
    • size

      public int size()
      Specified by:
      size in interface Map<String,Object>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<String,Object>
    • values

      public Collection<Object> values()
      Specified by:
      values in interface Map<String,Object>
    • read

      protected abstract Object read(String key)
    • readPropertyAndCache

      protected Object readPropertyAndCache(String key, String relPath) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • toJavaObject

      public static Object toJavaObject(javax.jcr.Value value) throws javax.jcr.RepositoryException
      Converts a JCR Value to a corresponding Java Object
      Parameters:
      value - the JCR Value to convert
      Returns:
      the Java Object
      Throws:
      javax.jcr.RepositoryException - if the value cannot be converted
    • valuesToJavaObject

      protected Object valuesToJavaObject(javax.jcr.Value[] values) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • readFully

      protected abstract void readFully()
    • toString

      public String toString()
      Reads the authorizable map completely and returns the string representation of the cached properties.
      Overrides:
      toString in class Object
    • remove

      public Object remove(Object arg0)
      Specified by:
      remove in interface Map<String,Object>
    • clear

      public void clear()
      Specified by:
      clear in interface Map<String,Object>
    • put

      public Object put(String arg0, Object arg1)
      Specified by:
      put in interface Map<String,Object>
    • putAll

      public void putAll(Map<? extends String,? extends Object> arg0)
      Specified by:
      putAll in interface Map<String,Object>
    • convertToType

      protected <T> T convertToType(String name, Class<T> type)