protected TraceChangeRecord<?, ?> doSetParent(DBTraceNamespaceSymbol newParent)
			throws CircularDependencyException {
		DBTraceNamespaceSymbol oldParent = parent;
		if (oldParent == newParent) {
			return null;
		}
		if (!isValidParent(newParent)) {
			throw new IllegalArgumentException(
				"This symbol type cannot be a child of the given namespace type");
		}
		DBTraceNamespaceSymbol checkedParent = checkCircular(newParent);
		this.parent = checkedParent;
		this.parentID = parent.getID();
		return new TraceChangeRecord<>(TraceEvents.SYMBOL_PARENT_CHANGED, getSpace(), this,
			oldParent, checkedParent);
	}
Checks and sets the parent

The caller must still call {@link #update(DBObjectColumn...)} for {@link #PARENT_COLUMN}.

@param newParent the parent namespace
@throws CircularDependencyException
Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/symbol/AbstractDBTraceSymbol.java