@Override
	public void keyChanged(Field oldKey, Field newKey, FieldKeyNode node) throws IOException {

		int index = getKeyIndex(oldKey);
		if (index < 0) {
			throw new AssertException();
		}
		// Is there room for updated key
		int lenChange = newKey.length() - oldKey.length();
		if (lenChange > 0 && lenChange > getFreeSpace()) {
			// Split node if updated key won't fit
			split(index, oldKey, newKey, (VarKeyNode) node);
		}

		else {
			// Update key
			updateKey(index, newKey);

			if (index == 0 && parent != null) {
				parent.keyChanged(oldKey, newKey, this);
			}
		}
	}
Callback method for when a child node's leftmost key changes.
@param oldKey previous leftmost key.
@param newKey new leftmost key.
@param node child node containing oldKey
@throws IOException if IO error occurs
Ghidra/Framework/DB/src/main/java/db/VarKeyInteriorNode.java