Class BaseContainerInstantiator

    • Field Detail

      • NO_ADAPTERS_ARRAY

        protected static String[] NO_ADAPTERS_ARRAY
      • EMPTY_STRING_ARRAY

        protected static String[] EMPTY_STRING_ARRAY
      • EMPTY_CLASS_ARRAY

        protected static Class[][] EMPTY_CLASS_ARRAY
    • Constructor Detail

      • BaseContainerInstantiator

        public BaseContainerInstantiator()
    • Method Detail

      • getIntegerFromArg

        protected Integer getIntegerFromArg​(Object arg)
        Parameters:
        arg - object to get Integer from
        Returns:
        Integer created from Object arg
        Since:
        3.6
      • getStringFromArg

        protected String getStringFromArg​(Object arg)
        Parameters:
        arg - object to get String from
        Returns:
        String created from Object arg
        Since:
        3.6
      • getAdaptersForClass

        protected Set getAdaptersForClass​(Class clazz)
      • getInterfacesForClass

        protected Set getInterfacesForClass​(Set s,
                                            Class clazz)
      • getInterfacesForClass

        protected Set getInterfacesForClass​(Class clazz)
      • getInterfacesAndAdaptersForClass

        protected String[] getInterfacesAndAdaptersForClass​(Class clazz)
      • getMap

        protected Map<String,​?> getMap​(Object[] parameters)
        Parameters:
        parameters - parameters to get Map from
        Returns:
        Map from first of parameters that is instance of Map
        Since:
        3.6
      • getParameterValue

        protected <T> T getParameterValue​(Map<String,​?> parameters,
                                          String key,
                                          Class<T> clazz,
                                          T def)
        Type Parameters:
        T - the expected value type
        Parameters:
        parameters - Map parameters to get value from
        key - the key to use to get value from parameters
        clazz - the expected type of the value accessed by key
        def - the default of the value accessed by key. May be null
        Returns:
        T value from parameters with key and of type clazz
        Since:
        3.6
      • getParameterValue

        protected String getParameterValue​(Map<String,​?> parameters,
                                           String key,
                                           String def)
        Parameters:
        parameters - Map parameters to get value from
        key - the key to use to get value from parameters
        def - the default of the value accessed by key. May be null
        Returns:
        String value from parameters with key
        Since:
        3.6
      • getParameterValue

        protected String getParameterValue​(Map<String,​?> parameters,
                                           String key)
        Parameters:
        parameters - Map parameters to get value from
        key - the key to use to get value from parameters
        Returns:
        String value from parameters with key
        Since:
        3.6
      • getIDParameterValue

        protected <T> ID getIDParameterValue​(Namespace ns,
                                             Map<String,​?> parameters,
                                             String key,
                                             Class<T> type,
                                             T def)
        Type Parameters:
        T - the expected value type
        Parameters:
        ns - namespace to use for ID creation. Must not be null
        parameters - Map parameters to get value from
        key - the key to use to get value from parameters
        type - the expected type of the value from parameters
        def - a default value to use if value from parameters is null
        Returns:
        ID the created ID
        Since:
        3.8
      • getIDParameterValue

        protected ID getIDParameterValue​(Namespace ns,
                                         Map<String,​?> parameters,
                                         String key,
                                         String def)
        Parameters:
        ns - namespace to use for ID creation. Must not be null
        parameters - Map parameters to get value from
        key - the key to use to get value from parameters
        def - a default String value to use if value from parameters is null
        Returns:
        ID the created ID
        Since:
        3.8
      • getIDParameterValue

        protected ID getIDParameterValue​(Namespace ns,
                                         Map<String,​?> parameters,
                                         String key)
        Parameters:
        ns - namespace to use for ID creation. Must not be null
        parameters - Map parameters to get value from
        key - the key to use to get value from parameters
        Returns:
        ID the created ID
        Since:
        3.8
      • getParameterValue

        protected <T> T getParameterValue​(Object[] parameters,
                                          String key,
                                          Class<T> clazz,
                                          T def)
        Type Parameters:
        T - the expected value type
        Parameters:
        parameters - parameters assumed to contain a Map
        key - key to use to get parameter value from Map
        clazz - the expected type of the value from Map
        def - a default value to use if value from Map is null
        Returns:
        T the parameter value with key from Map
        Since:
        3.6
      • getParameterValue

        protected <T> T getParameterValue​(Object[] parameters,
                                          String key,
                                          Class<T> clazz)
        Type Parameters:
        T - the expected value type
        Parameters:
        parameters - parameters assumed to contain a Map
        key - key to use to get parameter value from Map
        clazz - the expected type of the value from Map
        Returns:
        T the parameter value with key from Map
        Since:
        3.6
      • getMapParameterString

        protected String getMapParameterString​(Object[] parameters,
                                               String key,
                                               String def)
        Parameters:
        parameters - parameters assumed to contain a Map
        key - key to use to get parameter value from Map
        def - a default String value to use if value from Map is null
        Returns:
        Sting the parameter value with key from Map
        Since:
        3.6
      • getMapParameterString

        protected String getMapParameterString​(Object[] parameters,
                                               String key)
        Parameters:
        parameters - parameters assumed to contain a Map
        key - key to use to get parameter value from Map
        Returns:
        Sting the parameter value with key from Map
        Since:
        3.6
      • createInstance

        public IContainer createInstance​(ContainerTypeDescription description,
                                         Object[] parameters)
                                  throws ContainerCreateException
        Description copied from interface: IContainerInstantiator
        Create instance of IContainer. This is the interface that container provider implementations must implement for the containerFactory extension point. The caller may optionally specify both argument types and arguments that will be passed into this method (and therefore to the provider implementation implementing this method). For example:

        ContainerFactory.getDefault().createContainer("foocontainer",new Object { "hello" });

        Specified by:
        createInstance in interface IContainerInstantiator
        Parameters:
        description - the ContainerTypeDescription associated with the registered container provider implementation
        parameters - parameters specified by the caller. May be null if no parameters are passed in by caller to ContainerFactory.getDefault().createContainer(...)
        Returns:
        IContainer instance. The provider implementation must return a valid object implementing IContainer OR throw a ContainerCreateException. Null will not be returned.
        Throws:
        ContainerCreateException - thrown if instance cannot be created
      • getSupportedAdapterTypes

        public String[] getSupportedAdapterTypes​(ContainerTypeDescription description)
        Description copied from interface: IContainerInstantiator
        Get array of supported adapters for the given container type description. Providers implement this method to allow clients to inspect the adapter types exposed by the container described by the given description. The returned array entries will be the fully qualified names of the adapter classes. Note that the returned types do not guarantee that a subsequent call to IContainer.getAdapter(Class) with the same type name as a returned value will return a non-null result. In other words, even if the class name is in the returned array, subsequent calls to IContainer.getAdapter(Class) may still return null.
        Specified by:
        getSupportedAdapterTypes in interface IContainerInstantiator
        Parameters:
        description - the ContainerTypeDescription to report adapters for. Must not be null.
        Returns:
        String[] of supported adapters. The entries in the returned array will be the fully qualified class names of adapters supported by the given description. null may be returned by the provider if no adapters are supported for this description.