/** @see net.sf.tapestry.spec.ExtensionSpecification#addConfiguration(String, Object) */
  public void addConfiguration(String propertyName, Object value) {
    if (_configuration == null) {
      _configuration = new HashMap(7);
    }

    PluginExtensionConfiguration newConfig = new PluginExtensionConfiguration(propertyName, value);
    newConfig.setParent(this);
    _configuration.put(propertyName, newConfig);

    propertySupport.firePropertyChange("configuration", null, _configuration);
  }
  public void writeConfigurations(PrintWriter writer, int indent) {

    Map configurations = getConfiguration();

    if (configurations != null && !configurations.isEmpty()) {

      for (Iterator iter = new TreeSet(configurations.keySet()).iterator(); iter.hasNext(); ) {
        String propertyName = (String) iter.next();

        PluginExtensionConfiguration config =
            (PluginExtensionConfiguration) configurations.get(propertyName);

        config.write(writer, indent);
      }
    }
  }