protected <S extends Container, T extends Container> void resolveConflict(
			final Class<S> mergePanelClass, final Class<T> conflictPanelClass, final int option,
			boolean useForAll) throws Exception {
		waitForPrompting();

		S b = getMergePanel(mergePanelClass);
		S mergePanel = mergePanelClass.cast(b);
		assertNotNull(mergePanel);

		T c = getMergePanel(conflictPanelClass);
		T conflictPanel = conflictPanelClass.cast(c);
		assertNotNull(conflictPanel);

		switch (option) {
			case DataTypeMergeManager.OPTION_LATEST:
				JRadioButton latestRB = (JRadioButton) getInstanceField("latestRB", conflictPanel);
				assertNotNull(latestRB);
				if (!latestRB.isSelected()) {
					pressButton(latestRB);
				}
				break;
			case DataTypeMergeManager.OPTION_MY:
				JRadioButton myRB = (JRadioButton) getInstanceField("myRB", conflictPanel);
				assertNotNull(myRB);
				if (!myRB.isSelected()) {
					pressButton(myRB);
				}
				break;
			case DataTypeMergeManager.OPTION_ORIGINAL:
				JRadioButton origRB = (JRadioButton) getInstanceField("originalRB", conflictPanel);
				assertNotNull(origRB);
				if (!origRB.isSelected()) {
					pressButton(origRB);
				}
				break;
			default:
				throw new IllegalArgumentException(option + " is not a valid conflict option.");
		}

		JCheckBox useForAllCB = (JCheckBox) getInstanceField("useForAllCB", mergePanel);
		assertNotNull(useForAllCB);
		useForAllCB.setSelected(useForAll);

		waitForApply(true);
		chooseApply();
	}
Adapter for data type merge tests.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/datatypes/AbstractDataTypeMergeTest.java