try {
final Node node = getNode();
// check for mixin types
if ( this.changedProperties.contains(NodeUtil.MIXIN_TYPES) ) {
if ( cache.containsKey(NodeUtil.MIXIN_TYPES) ) {
final JcrPropertyMapCacheEntry entry = cache.get(NodeUtil.MIXIN_TYPES);
NodeUtil.handleMixinTypes(node, entry.values);
} else {
// remove all mixin types!
NodeUtil.handleMixinTypes(node, null);
}
}
for(final String key : this.changedProperties) {
final String name = escapeKeyName(key);
if ( !NodeUtil.MIXIN_TYPES.equals(name) ) {
if ( cache.containsKey(key) ) {
final JcrPropertyMapCacheEntry entry = cache.get(key);
if ( entry.isMulti ) {
node.setProperty(name, entry.values);
} else {
node.setProperty(name, entry.values[0]);
}