private boolean writeNodeRecord(NodeRecord record) throws IOException { byte inUse = record.inUse() ? Record.IN_USE.byteValue() : Record.NOT_IN_USE.byteValue(); channel.put(inUse); if (record.inUse()) { channel.put(record.isDense() ? (byte) 1 : (byte) 0); channel.putLong(record.getNextRel()).putLong(record.getNextProp()); channel.putLong(record.getLabelField()); } // Always write dynamic label records because we want to know which ones have been deleted // especially if the node has been deleted. writeDynamicRecords(record.getDynamicLabelRecords()); return false; }
@Override public boolean visitNodeCommand(Command.NodeCommand command) throws IOException { long id = channel.getLong(); NodeRecord before = readNodeRecord(id); if (before == null) { return true; } NodeRecord after = readNodeRecord(id); if (after == null) { return true; } if (!before.inUse() && after.inUse()) { after.setCreated(); } command.init(before, after); return false; }