@Override
	public void replaceWith(DataType dataType) {
		if (!(dataType instanceof TypeDef)) {
			throw new UnsupportedOperationException();
		}
		if (dataType == this) {
			return;
		}
		lock.acquire();
		try {
			TypeDef td = (TypeDef) dataType;
			dataTypeReplaced(getDataType(), td.getDataType());
			TypedefDataType.copyTypeDefSettings(td, this, true);
			// NOTE: as with the name, auto-name setting is left unchanged
		}
		finally {
			lock.release();
		}
	}
Construct TypeDefDB instance
@param dataMgr datatype manager
@param cache DataTypeDB cache
@param adapter TypeDef record adapter
@param record TypeDefDB record
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/TypedefDB.java