PreferencesException
{
ArgUtil.notNull(new Object[]{prefNode, propertyKeysMap}, new String[]{"prefNode", "propertyKeysMap",},
"addPropertyKeys(java.util.prefs.Preferences, java.util.Collection)");
Node nodeObj = getNode(prefNode);
// Get the existing property keys.
Collection propertyKeys = nodeObj.getNodeKeys();
ArrayList newPropertyKeys = new ArrayList(propertyKeysMap.size());
for (Iterator i = propertyKeysMap.keySet().iterator(); i.hasNext();)
{
boolean foundKey = false;
String currentPropertyKeyName = (String) i.next();
for (Iterator j = propertyKeys.iterator(); j.hasNext();)
{
PropertyKey existingPpk = (PropertyKey) j.next();
if (propertyKeysMap.containsKey(existingPpk.getPropertyKeyName()))
{
if (logger.isDebugEnabled())
logger.debug("Existing Property: " + (String) propertyKeysMap.get(currentPropertyKeyName));
foundKey = true;
newPropertyKeys.add(existingPpk);
break;
}
}
if (!foundKey)
{
if (logger.isDebugEnabled())
logger.debug("New Property: " + currentPropertyKeyName);
PropertyKey ppk = new PropertyKeyImpl(currentPropertyKeyName, ((Integer) propertyKeysMap
.get(currentPropertyKeyName)).intValue());
newPropertyKeys.add(ppk);
}
}
// Add the properties keys.
if (logger.isDebugEnabled())
logger.debug("Node: " + nodeObj.toString());
if (logger.isDebugEnabled())
logger.debug("Node property keys: " + newPropertyKeys.toString());
nodeObj.setNodeKeys(newPropertyKeys);
nodeObj.setModifiedDate(new Timestamp(System.currentTimeMillis()));
prefsProvider.storeNode(nodeObj);
}