public void process(Configuration config)
{
if (config != null)
{
DefaultExpressionEngine exprEngine = DefaultExpressionEngine.INSTANCE;
DefaultConfigurationKey keyEmpty =
new DefaultConfigurationKey(exprEngine);
DefaultConfigurationKey keyLast = keyEmpty;
Set<String> keySet = new HashSet<String>();
for (Iterator<String> it = config.getKeys(); it.hasNext();)
{
String key = it.next();
if (keySet.contains(key))
{
// this key has already been processed by openElements
continue;
}
DefaultConfigurationKey keyAct =
new DefaultConfigurationKey(exprEngine, key);
closeElements(keyLast, keyAct);
String elem = openElements(keyLast, keyAct, config, keySet);
fireValue(elem, config.getProperty(key));
keyLast = keyAct;
}