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); }