@Override public void setNodeLabels( long node, Label... labels ) { delegate.setNodeLabels( node, labels ); }
@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 ) ); }
@Test public void shouldSortLabelIdsWhenGetOrCreate() { // GIVEN BatchInserter inserter = globalInserter; // WHEN long nodeId = inserter.createNode( map( "Item", 123456789123L ), label( "AA" ), label( "BB" ), label( "CC" ), label( "DD" ) ); inserter.setNodeLabels( nodeId, label( "CC" ), label( "AA" ), label( "DD" ), label( "EE" ), label( "FF" ) ); // THEN NodeStore nodeStore = getFlushedNeoStores( inserter ).getNodeStore(); NodeRecord node = nodeStore.getRecord( nodeId, nodeStore.newRecord(), RecordLoad.NORMAL ); NodeLabels labels = NodeLabelsField.parseLabelsField( node ); long[] labelIds = labels.get( nodeStore ); long[] sortedLabelIds = labelIds.clone(); Arrays.sort( sortedLabelIds ); assertArrayEquals( sortedLabelIds, labelIds ); }
@Override public void setNodeLabels( long node, Label... labels ) { delegate.setNodeLabels( node, labels ); }
@Override public void setLabel(long node, Label label) { synchronized (graphLock) { inserter.setNodeLabels(node, label); } }
@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()])); } }