Class Toolbox

  • All Implemented Interfaces:
    java.io.Serializable

    public class Toolbox
    extends java.lang.Object
    implements java.io.Serializable

    Instances of this class are typically created by a ToolboxFactory on a one-per-scope basis. So, for each application, there would be one application-scoped Toolbox from which you would retrieve tool instances, and for each request, there would be one request-scoped Toolbox. Of course, none of the above is enforced. There's no reason that you can't manually create a Toolbox or have multiple Toolboxes for each scope.

    When a Toolbox creates a tool instance asked of it (see get(java.lang.String)), it will cache that instance for future requests.

    Version:
    $Id: Toolbox.java 511959 2007-02-26 19:24:39Z nbubna $
    Author:
    Nathan Bubna
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Map<java.lang.String,​java.lang.Object> cache  
      private java.util.Map<java.lang.String,​ToolInfo> infoMap  
      static java.lang.String KEY
      The key used to place instances in various scopes.
      private java.util.Map<java.lang.String,​java.lang.Object> properties  
      private static long serialVersionUID  
    • Constructor Summary

      Constructors 
      Constructor Description
      Toolbox​(java.util.Map<java.lang.String,​ToolInfo> toolInfo)  
      Toolbox​(java.util.Map<java.lang.String,​ToolInfo> toolInfo, java.util.Map<java.lang.String,​java.lang.Object> properties)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void cacheData​(java.util.Map<java.lang.String,​java.lang.Object> data)  
      Toolbox combine​(Toolbox... toolboxes)
      Returns a new Toolbox that is a combination of this Toolbox with one or more specified Toolboxes.
      java.lang.Object get​(java.lang.String key)  
      java.lang.Object get​(java.lang.String key, java.lang.String path)  
      java.lang.Object get​(java.lang.String key, java.lang.String path, java.util.Map<java.lang.String,​java.lang.Object> context)  
      java.lang.Object get​(java.lang.String key, java.util.Map<java.lang.String,​java.lang.Object> context)  
      java.util.Map<java.lang.String,​java.lang.Object> getAll​(java.util.Map<java.lang.String,​java.lang.Object> context)  
      protected java.lang.Object getFromCache​(java.lang.String key, java.lang.String path)  
      protected java.lang.Object getFromInfo​(java.lang.String key, java.lang.String path, java.util.Map<java.lang.String,​java.lang.Object> context)  
      java.util.Set<java.lang.String> getKeys()  
      java.util.Map<java.lang.String,​java.lang.Object> getProperties()  
      java.util.Map<java.lang.String,​java.lang.Class> getToolClassMap()
      Return a new Map link tools' keys to their Classes.
      protected boolean hasPermission​(ToolInfo info, java.lang.String path)  
      • Methods inherited from class java.lang.Object

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

      • KEY

        public static final java.lang.String KEY
        The key used to place instances in various scopes.
      • infoMap

        private java.util.Map<java.lang.String,​ToolInfo> infoMap
      • properties

        private java.util.Map<java.lang.String,​java.lang.Object> properties
      • cache

        private java.util.Map<java.lang.String,​java.lang.Object> cache
    • Constructor Detail

      • Toolbox

        public Toolbox​(java.util.Map<java.lang.String,​ToolInfo> toolInfo)
      • Toolbox

        public Toolbox​(java.util.Map<java.lang.String,​ToolInfo> toolInfo,
                       java.util.Map<java.lang.String,​java.lang.Object> properties)
    • Method Detail

      • cacheData

        protected void cacheData​(java.util.Map<java.lang.String,​java.lang.Object> data)
      • getProperties

        public java.util.Map<java.lang.String,​java.lang.Object> getProperties()
      • get

        public java.lang.Object get​(java.lang.String key)
      • get

        public java.lang.Object get​(java.lang.String key,
                                    java.lang.String path)
      • get

        public java.lang.Object get​(java.lang.String key,
                                    java.util.Map<java.lang.String,​java.lang.Object> context)
      • get

        public java.lang.Object get​(java.lang.String key,
                                    java.lang.String path,
                                    java.util.Map<java.lang.String,​java.lang.Object> context)
      • getFromCache

        protected java.lang.Object getFromCache​(java.lang.String key,
                                                java.lang.String path)
      • getFromInfo

        protected java.lang.Object getFromInfo​(java.lang.String key,
                                               java.lang.String path,
                                               java.util.Map<java.lang.String,​java.lang.Object> context)
      • hasPermission

        protected boolean hasPermission​(ToolInfo info,
                                        java.lang.String path)
      • getKeys

        public java.util.Set<java.lang.String> getKeys()
      • getToolClassMap

        public java.util.Map<java.lang.String,​java.lang.Class> getToolClassMap()
        Return a new Map link tools' keys to their Classes. This will not instantiate any tools, it is merely informational. This will not include the keys for any cached data. Note that inclusion in this map does NOT mean that all these tools will be available for all requests, as this map ignores all path restrictions on the tools.
      • getAll

        public java.util.Map<java.lang.String,​java.lang.Object> getAll​(java.util.Map<java.lang.String,​java.lang.Object> context)
      • combine

        public Toolbox combine​(Toolbox... toolboxes)
        Returns a new Toolbox that is a combination of this Toolbox with one or more specified Toolboxes. Neither this instance nor those specified are modified.