def import_base(properties, options = {})
    config      = Config.new(options, { :force => @force, :basic => @basic_merge }).set(:context, :hash)
    import_type = config.get(:import_type, :override)

    properties  = properties.export if properties.is_a?(Nucleon::Config)

    case properties
    when Hash
      data = [ @properties, symbol_map(Util::Data.clone(properties)) ]
      data = data.reverse if import_type != :override

      @properties = Util::Data.merge(data, config)

    when String, Symbol
      if respond_to?(:lookup)
        properties = self.class.lookup(properties.to_s, {}, config)

        data = [ @properties, symbol_map(properties) ]
        data = data.reverse if import_type != :override

        @properties = Util::Data.merge(data, config)
      end

    when Array
      Util::Data.clone(properties).each do |item|
        import_base(item, config)
      end
    end

    return self
  end
def import_base(properties, options = {})
    config      = Config.new(options, { :force => @force, :basic => @basic_merge }).set(:context, :hash)
    import_type = config.get(:import_type, :override)

    properties  = properties.export if properties.is_a?(Nucleon::Config)

    case properties
    when Hash
      data = [ @properties, symbol_map(Util::Data.clone(properties)) ]
      data = data.reverse if import_type != :override

      @properties = Util::Data.merge(data, config)

    when String, Symbol
      if respond_to?(:lookup)
        properties = self.class.lookup(properties.to_s, {}, config)

        data = [ @properties, symbol_map(properties) ]
        data = data.reverse if import_type != :override

        @properties = Util::Data.merge(data, config)
      end

    when Array
      Util::Data.clone(properties).each do |item|
        import_base(item, config)
      end
    end

    return self
  end
*****************************************************************************
 Import / Export
 Base import method for the configuration object.

 This method is used to perform merge overrides of new property values and to
 set defaults if no properties currently exist.

 If properties are given as a string or symbol and the configuration object
 has a lookup method implemented (corl gem) then the properties will be
 dynamically looked up and imported.

 * *Parameters*
   - [String, Symbol, Array, Hash] *properties*  Data to import
   - [Hash] *options*  Import options
     - [Symbol] *:import_type*  Type of import to perform; *:override* or *:default*
     - Options to Nucleon::Util::Data::merge

 * *Returns*
   - [Nucleon::Config]  Returns reference to self for compound operations

 * *Errors*

 See also:
 - ::new
 - #get
 - #set
 - #export
 - #symbol_map
 - Nucleon::Util::Data::merge