case PropertyType.STRING: case PropertyType.WEAKREFERENCE: return PropertyValues.newReference(v);
case PropertyType.STRING: case PropertyType.WEAKREFERENCE: return PropertyValues.newReference(v);
case PropertyType.STRING: case PropertyType.WEAKREFERENCE: return PropertyValues.newReference(v);
@Test public void basicReferenceHandling() throws Exception{ NodeState root = INITIAL_CONTENT; NodeBuilder builder = root.builder(); NodeState before = builder.getNodeState(); builder.child("a").setProperty(createProperty("foo", "u1", Type.REFERENCE)); builder.child("b").setProperty(createProperty("foo", "u1", Type.REFERENCE)); builder.child("c").setProperty(createProperty("foo", "u2", Type.WEAKREFERENCE)); NodeState after = builder.getNodeState(); EditorHook hook = new EditorHook( new IndexUpdateProvider(new ReferenceEditorProvider())); NodeState indexed = hook.processCommit(before, after, CommitInfo.EMPTY); FilterImpl f = createFilter(indexed, NT_BASE); f.restrictProperty("*", Operator.EQUAL, newReference("u1"), PropertyType.REFERENCE); assertFilter(f, new ReferenceIndex(), indexed, of("/a", "/b")); FilterImpl f2 = createFilter(indexed, NT_BASE); f2.restrictProperty("*", Operator.EQUAL, newReference("u2"), PropertyType.WEAKREFERENCE); assertFilter(f2, new ReferenceIndex(), indexed, of("/c")); }
@Test public void referenceHandlingWithMounts() throws Exception{ NodeState root = INITIAL_CONTENT; NodeBuilder builder = root.builder(); NodeState before = builder.getNodeState(); builder.child("a").child("x").setProperty(createProperty("foo", "u1", Type.REFERENCE)); builder.child("b").setProperty(createProperty("foo", "u1", Type.REFERENCE)); builder.child("c").setProperty(createProperty("foo", "u1", Type.WEAKREFERENCE)); builder.child("d").setProperty(createProperty("foo", "u2", Type.WEAKREFERENCE)); builder.child("a").child("y").setProperty(createProperty("foo", "u1", Type.WEAKREFERENCE)); NodeState after = builder.getNodeState(); MountInfoProvider mip = Mounts.newBuilder() .mount("foo", "/a") .build(); EditorHook hook = new EditorHook( new IndexUpdateProvider(new ReferenceEditorProvider().with(mip))); ReferenceIndex referenceIndex = new ReferenceIndex(mip); NodeState indexed = hook.processCommit(before, after, CommitInfo.EMPTY); FilterImpl f = createFilter(indexed, NT_BASE); f.restrictProperty("*", Operator.EQUAL, newReference("u1"), PropertyType.REFERENCE); // System.out.println(NodeStateUtils.toString(NodeStateUtils.getNode(indexed, "/oak:index/reference"))); assertFilter(f, referenceIndex, indexed, of("/a/x", "/b")); FilterImpl f2 = createFilter(indexed, NT_BASE); f2.restrictProperty("*", Operator.EQUAL, newReference("u1"), PropertyType.WEAKREFERENCE); assertFilter(f2, referenceIndex, indexed, of("/c", "/a/y")); }