Exemple #1
0
        protected void AddBeanConfiguration(IBeanConfiguration beanConfiguration)
        {
            String beanName = beanConfiguration.GetName();

            if (beanName != null && beanName.Length > 0)
            {
                if (nameToBeanConfMap == null)
                {
                    nameToBeanConfMap = new HashMap <String, IBeanConfiguration>();
                }
                if (aliasToBeanNameMap != null && aliasToBeanNameMap.ContainsKey(beanName))
                {
                    throw new Exception("An alias with the name '" + beanName + "' of this bean is already registered in this context");
                }
                if (!beanConfiguration.IsOverridesExisting())
                {
                    if (!nameToBeanConfMap.PutIfNotExists(beanName, beanConfiguration))
                    {
                        IBeanConfiguration existingBeanConfiguration = nameToBeanConfMap.Get(beanName);
                        if (!existingBeanConfiguration.IsOverridesExisting())
                        {
                            throw ServiceContext.CreateDuplicateBeanNameException(beanName, beanConfiguration, existingBeanConfiguration);
                        }
                        // Existing config requests precedence over every other bean config. This is no error
                        return;
                    }
                }
                else
                {
                    // Intentionally put the configuration in the map unaware of an existing entry
                    nameToBeanConfMap.Put(beanName, beanConfiguration);
                }
            }
            if (beanConfigurations == null)
            {
                beanConfigurations = new List <IBeanConfiguration>();
            }
            beanConfigurations.Add(beanConfiguration);
        }