public void close() {
    recordChangeSet.close();
    commandSet.close();

    locker.setLockClient(null);
    txState = null;
    supplier.release(this);
  }
 public RecordProxy<Long, RelationshipGroupRecord, Integer> getRelationshipGroup(
     NodeRecord node, int type) {
   long groupId = node.getNextRel();
   long previousGroupId = Record.NO_NEXT_RELATIONSHIP.intValue();
   Set<Integer> allTypes = new HashSet<>();
   while (groupId != Record.NO_NEXT_RELATIONSHIP.intValue()) {
     RecordProxy<Long, RelationshipGroupRecord, Integer> change =
         recordChangeSet.getRelGroupRecords().getOrLoad(groupId, type);
     RelationshipGroupRecord record = change.forReadingData();
     record.setPrev(previousGroupId); // not persistent so not a "change"
     allTypes.add(record.getType());
     if (record.getType() == type) {
       return change;
     }
     previousGroupId = groupId;
     groupId = record.getNext();
   }
   return null;
 }
 public void updateFirstRelationships() {
   for (RecordProxy<Long, NodeRecord, Void> change : recordChangeSet.getNodeRecords().changes()) {
     NodeRecord record = change.forReadingLinkage();
     txState.setFirstIds(record.getId(), record.getNextRel(), record.getNextProp());
   }
 }
 public RecordChanges<Integer, RelationshipTypeTokenRecord, Void>
     getRelationshipTypeTokenRecords() {
   return recordChangeSet.getRelationshipTypeTokenChanges();
 }
 public RecordChanges<Integer, LabelTokenRecord, Void> getLabelTokenRecords() {
   return recordChangeSet.getLabelTokenChanges();
 }
 public RecordChanges<Integer, PropertyKeyTokenRecord, Void> getPropertyKeyTokenRecords() {
   return recordChangeSet.getPropertyKeyTokenChanges();
 }
 public RecordChanges<Long, RelationshipGroupRecord, Integer> getRelGroupRecords() {
   return recordChangeSet.getRelGroupRecords();
 }
 public RecordChanges<Long, PropertyRecord, PrimitiveRecord> getPropertyRecords() {
   return recordChangeSet.getPropertyRecords();
 }
 public RecordChanges<Long, Collection<DynamicRecord>, SchemaRule> getSchemaRuleChanges() {
   return recordChangeSet.getSchemaRuleChanges();
 }
 public RecordChanges<Long, RelationshipRecord, Void> getRelRecords() {
   return recordChangeSet.getRelRecords();
 }
 public RecordChanges<Long, NodeRecord, Void> getNodeRecords() {
   return recordChangeSet.getNodeRecords();
 }
 public ArrayMap<Integer, DefinedProperty> getAndDeletePropertyChain(NodeRecord nodeRecord) {
   return propertyDeleter.getAndDeletePropertyChain(
       nodeRecord, recordChangeSet.getPropertyRecords());
 }