public virtual void removeConfigurationChangeListener(ConfigurationChangeListener l)
 {
     if (l == null)
     {
         return;
     }
     this.changeListeners.remove(l);
 }
 public virtual void addConfigurationChangeListener(ConfigurationChangeListener l)
 {
     if (l == null)
     {
         return;
     }
     this.changeListeners.add(l);
 }
        internal virtual void fireConfChanged(string text, string str)
        {
            if (!ConfigurationManager.assertionsDisabled && !this.getComponentNames().contains(text))
            {
                throw new AssertionError();
            }
            Iterator iterator = this.changeListeners.iterator();

            while (iterator.hasNext())
            {
                ConfigurationChangeListener configurationChangeListener = (ConfigurationChangeListener)iterator.next();
                configurationChangeListener.configurationChanged(text, str, this);
            }
        }
        public virtual void removeConfigurable(string name)
        {
            if (!ConfigurationManager.assertionsDisabled && !this.getComponentNames().contains(name))
            {
                throw new AssertionError();
            }
            PropertySheet ps = (PropertySheet)this.symbolTable.remove(name);

            this.rawPropertyMap.remove(name);
            Iterator iterator = this.changeListeners.iterator();

            while (iterator.hasNext())
            {
                ConfigurationChangeListener configurationChangeListener = (ConfigurationChangeListener)iterator.next();
                configurationChangeListener.componentRemoved(this, ps);
            }
        }
        public virtual void addConfigurable(Configurable configurable, string name)
        {
            if (this.symbolTable.containsKey(name))
            {
                string text = "tried to override existing component name";

                throw new IllegalArgumentException(text);
            }
            RawPropertyData rawPropertyData = new RawPropertyData(name, Object.instancehelper_getClass(configurable).getName());
            PropertySheet   propertySheet   = new PropertySheet(configurable, name, rawPropertyData, this);

            this.symbolTable.put(name, propertySheet);
            this.rawPropertyMap.put(name, rawPropertyData);
            Iterator iterator = this.changeListeners.iterator();

            while (iterator.hasNext())
            {
                ConfigurationChangeListener configurationChangeListener = (ConfigurationChangeListener)iterator.next();
                configurationChangeListener.componentAdded(this, propertySheet);
            }
        }
        public virtual void addConfigurable(Class confClass, string name, Map props)
        {
            if (name == null)
            {
                name = confClass.getName();
            }
            if (this.symbolTable.containsKey(name))
            {
                string text = new StringBuilder().append("tried to override existing component name : ").append(name).toString();

                throw new IllegalArgumentException(text);
            }
            PropertySheet propSheetInstanceFromClass = ConfigurationManager.getPropSheetInstanceFromClass(confClass, props, name, this);

            this.symbolTable.put(name, propSheetInstanceFromClass);
            this.rawPropertyMap.put(name, new RawPropertyData(name, confClass.getName()));
            Iterator iterator = this.changeListeners.iterator();

            while (iterator.hasNext())
            {
                ConfigurationChangeListener configurationChangeListener = (ConfigurationChangeListener)iterator.next();
                configurationChangeListener.componentAdded(this, propSheetInstanceFromClass);
            }
        }