@Override public Editor childNodeChanged(String name, NodeState before, NodeState after) { return new ReferenceEditor(this, name); }
@Override public void propertyAdded(PropertyState after) { propertyChanged(null, after); }
if (!isVersionStorePath(getPath())) { put(rmRefs, before.getValue(STRINGS), concat(getPath(), before.getName())); put(rmWeakRefs, before.getValue(STRINGS), concat(getPath(), before.getName())); if (!isVersionStorePath(getPath())) { put(newRefs, after.getValue(STRINGS), concat(getPath(), after.getName())); put(newWeakRefs, after.getValue(STRINGS), concat(getPath(), after.getName()));
throws CommitFailedException { if (parent == null) { Set<IndexStoreStrategy> refStores = getStrategies(false, REF_NAME); Set<IndexStoreStrategy> weakRefStores = getStrategies(false, WEAK_REF_NAME); add = newRefs.remove(uuid); update(refStores, definition, REF_NAME, uuid, add, rm); update(refStores, definition, REF_NAME, uuid, add, rm); checkReferentialIntegrity(refStores, root, definition.getNodeState(), Sets.difference(rmIds, newIds)); add = newWeakRefs.remove(uuid); update(weakRefStores, definition, WEAK_REF_NAME, uuid, add, rm); Set<String> add = ref.getValue(); Set<String> rm = emptySet(); update(weakRefStores, definition, WEAK_REF_NAME, uuid, add, rm);
/** * Returns the path of this node, building it lazily when first requested. */ private String getPath() { if (path == null) { path = concat(parent.getPath(), name); } return path; }
private static void checkReferentialIntegrity(Set<IndexStoreStrategy> refStores, NodeState root, NodeState definition, Set<String> idsOfRemovedNodes) throws CommitFailedException { for (IndexStoreStrategy store : refStores) { for (String id : idsOfRemovedNodes) { if (hasReferences(store, root, definition, REF_NAME, id)) { throw new CommitFailedException(INTEGRITY, 1, "Unable to delete referenced node"); } } } } }
if (!isVersionStorePath(getPath())) { put(rmRefs, before.getValue(STRINGS), concat(getPath(), before.getName())); put(rmWeakRefs, before.getValue(STRINGS), concat(getPath(), before.getName())); if (!isVersionStorePath(getPath())) { put(newRefs, after.getValue(STRINGS), concat(getPath(), after.getName())); put(newWeakRefs, after.getValue(STRINGS), concat(getPath(), after.getName()));
throws CommitFailedException { if (parent == null) { Set<IndexStoreStrategy> refStores = getStrategies(false, REF_NAME); Set<IndexStoreStrategy> weakRefStores = getStrategies(false, WEAK_REF_NAME); add = newRefs.remove(uuid); update(refStores, definition, REF_NAME, uuid, add, rm); update(refStores, definition, REF_NAME, uuid, add, rm); checkReferentialIntegrity(refStores, root, definition.getNodeState(), Sets.difference(rmIds, newIds)); add = newWeakRefs.remove(uuid); update(weakRefStores, definition, WEAK_REF_NAME, uuid, add, rm); Set<String> add = ref.getValue(); Set<String> rm = emptySet(); update(weakRefStores, definition, WEAK_REF_NAME, uuid, add, rm);
/** * Returns the path of this node, building it lazily when first requested. */ private String getPath() { if (path == null) { path = concat(parent.getPath(), name); } return path; }
private static void checkReferentialIntegrity(Set<IndexStoreStrategy> refStores, NodeState root, NodeState definition, Set<String> idsOfRemovedNodes) throws CommitFailedException { for (IndexStoreStrategy store : refStores) { for (String id : idsOfRemovedNodes) { if (hasReferences(store, root, definition, REF_NAME, id)) { throw new CommitFailedException(INTEGRITY, 1, "Unable to delete referenced node"); } } } } }
if (!isVersionStorePath(getPath())) { put(rmRefs, before.getValue(STRINGS), concat(getPath(), before.getName())); put(rmWeakRefs, before.getValue(STRINGS), concat(getPath(), before.getName())); if (!isVersionStorePath(getPath())) { put(newRefs, after.getValue(STRINGS), concat(getPath(), after.getName())); put(newWeakRefs, after.getValue(STRINGS), concat(getPath(), after.getName()));
throws CommitFailedException { if (parent == null) { Set<IndexStoreStrategy> refStores = getStrategies(false, REF_NAME); Set<IndexStoreStrategy> weakRefStores = getStrategies(false, WEAK_REF_NAME); add = newRefs.remove(uuid); update(refStores, definition, REF_NAME, uuid, add, rm); update(refStores, definition, REF_NAME, uuid, add, rm); checkReferentialIntegrity(refStores, root, definition.getNodeState(), Sets.difference(rmIds, newIds)); add = newWeakRefs.remove(uuid); update(weakRefStores, definition, WEAK_REF_NAME, uuid, add, rm); Set<String> add = ref.getValue(); Set<String> rm = emptySet(); update(weakRefStores, definition, WEAK_REF_NAME, uuid, add, rm);
@Override public Editor childNodeChanged(String name, NodeState before, NodeState after) { return new ReferenceEditor(this, name); }
@Override public void propertyAdded(PropertyState after) { propertyChanged(null, after); }
/** * Returns the path of this node, building it lazily when first requested. */ private String getPath() { if (path == null) { path = concat(parent.getPath(), name); } return path; }
private static void checkReferentialIntegrity(Set<IndexStoreStrategy> refStores, NodeState root, NodeState definition, Set<String> idsOfRemovedNodes) throws CommitFailedException { for (IndexStoreStrategy store : refStores) { for (String id : idsOfRemovedNodes) { if (hasReferences(store, root, definition, REF_NAME, id)) { throw new CommitFailedException(INTEGRITY, 1, "Unable to delete referenced node"); } } } } }
@Override public Editor childNodeChanged(String name, NodeState before, NodeState after) { return new ReferenceEditor(this, name); }
@Override public void propertyDeleted(PropertyState before) { propertyChanged(before, null); }
@Override public Editor getIndexEditor(@Nonnull String type, @Nonnull NodeBuilder definition, @Nonnull NodeState root, @Nonnull IndexUpdateCallback callback) { if (TYPE.equals(type)) { return new ReferenceEditor(definition, root, mountInfoProvider); } return null; }
@Override public void propertyDeleted(PropertyState before) { propertyChanged(before, null); }