@Override public Iterable<Label> getNodeLabels( long node ) { return delegate.getNodeLabels( node ); }
@Test public void shouldGetNodeLabels() { // GIVEN BatchInserter inserter = globalInserter; long node = inserter.createNode( map(), Labels.FIRST, Labels.THIRD ); // WHEN Iterable<String> labelNames = asNames( inserter.getNodeLabels( node ) ); // THEN assertEquals( asSet( Labels.FIRST.name(), Labels.THIRD.name() ), Iterables.asSet( labelNames ) ); }
@Test public void shouldAddManyInitialLabelsAsDynamicRecords() { // GIVEN BatchInserter inserter = globalInserter; Pair<Label[], Set<String>> labels = manyLabels( 200 ); long node = inserter.createNode( map(), labels.first() ); forceFlush( inserter ); // WHEN Iterable<String> labelNames = asNames( inserter.getNodeLabels( node ) ); // THEN assertEquals( labels.other(), Iterables.asSet( labelNames ) ); }
@Test public void shouldReplaceExistingInlinedLabelsWithDynamic() { // GIVEN BatchInserter inserter = globalInserter; long node = inserter.createNode( map(), Labels.FIRST ); // WHEN Pair<Label[], Set<String>> labels = manyLabels( 100 ); inserter.setNodeLabels( node, labels.first() ); // THEN Iterable<String> labelNames = asNames( inserter.getNodeLabels( node ) ); assertEquals( labels.other(), Iterables.asSet( labelNames ) ); }
@Test public void shouldReplaceExistingDynamicLabelsWithInlined() { // GIVEN BatchInserter inserter = globalInserter; long node = inserter.createNode( map(), manyLabels( 150 ).first() ); // WHEN inserter.setNodeLabels( node, Labels.FIRST ); // THEN Iterable<String> labelNames = asNames( inserter.getNodeLabels( node ) ); assertEquals( asSet( Labels.FIRST.name() ), Iterables.asSet( labelNames ) ); }
@Override public Iterable<Label> getNodeLabels( long node ) { return delegate.getNodeLabels( node ); }
@Override public Collection<Label> getLabels(long node) { synchronized (graphLock) { return newHashSet(inserter.getNodeLabels(node)); } }
@Override public void addLabel(long node, Label label) { synchronized (graphLock) { Set<Label> labels = newLinkedHashSet(inserter.getNodeLabels(node)); labels.add(label); inserter.setNodeLabels(node, labels.toArray(new Label[labels.size()])); } }
private static Label[] labelsArray(BatchInserter db, long node, Set<String> ignoreLabels) { Collection<Label> labels = Iterables.asCollection(db.getNodeLabels(node)); if (labels.isEmpty()) return NO_LABELS; if (!ignoreLabels.isEmpty()) { labels.removeIf(label -> ignoreLabels.contains(label.name())); } return labels.toArray(new Label[labels.size()]); }
try { if (sourceDb.nodeExists(node)) { if (labelInSet(sourceDb.getNodeLabels(node),deleteNodesWithLabels)) { removed ++; } else {