Address Sonar issues in core UI bundle

This commit addresses a number of bugs and
code smells reported by Sonar in the Eclipse Capra's
core UI bundle.

Change-Id: Iebbad97f4257cbf39026eca5c802dc33e7559969
diff --git a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/adapters/ArtifactAdapter.java b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/adapters/ArtifactAdapter.java
index 7f8c329..09ee75a 100644
--- a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/adapters/ArtifactAdapter.java
+++ b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/adapters/ArtifactAdapter.java
@@ -58,7 +58,7 @@
 	public ArtifactAdapter(EObject theItem) {
 		this.artifact = theItem;
 
-		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().orElseThrow();
 		ResourceSet resourceSet = new ResourceSetImpl();
 		EObject artifactModel = persistenceAdapter.getArtifactWrappers(resourceSet);
 		artifactHelper = new ArtifactHelper(artifactModel);
diff --git a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/adapters/ConnectionAdapter.java b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/adapters/ConnectionAdapter.java
index 3c5fe26..4a807b8 100644
--- a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/adapters/ConnectionAdapter.java
+++ b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/adapters/ConnectionAdapter.java
@@ -40,7 +40,7 @@
  */
 public class ConnectionAdapter implements IPropertySource {
 
-	private static enum DescriptorIDs {
+	private enum DescriptorIDs {
 		ORIGIN, TARGETS, TYPE
 	}
 
@@ -58,7 +58,7 @@
 	public ConnectionAdapter(Connection theItem) {
 		this.connection = theItem;
 
-		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().orElseThrow();
 		ResourceSet resourceSet = new ResourceSetImpl();
 		EObject artifactModel = persistenceAdapter.getArtifactWrappers(resourceSet);
 		artifactHelper = new ArtifactHelper(artifactModel);
@@ -97,8 +97,7 @@
 		if (id.equals(DescriptorIDs.ORIGIN)) {
 			return artifactHelper.getArtifactLabel(connection.getOrigin());
 		} else if (id.equals(DescriptorIDs.TARGETS)) {
-			return connection.getTargets().stream().map(t -> artifactHelper.getArtifactLabel(t))
-					.collect(Collectors.toList());
+			return connection.getTargets().stream().map(artifactHelper::getArtifactLabel).collect(Collectors.toList());
 		} else if (id.equals(DescriptorIDs.TYPE)) {
 			return connection.getTlink().eClass().getName();
 		} else {
diff --git a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/handlers/TraceCreationHandler.java b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/handlers/TraceCreationHandler.java
index 32e8207..ed4b0ab 100644
--- a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/handlers/TraceCreationHandler.java
+++ b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/handlers/TraceCreationHandler.java
@@ -39,9 +39,8 @@
 				SelectionView.getOpenedView().getSelection());
 		createTraceOperation.addContext(undoContext);
 		if (SelectionView.getOpenedView().getSelectedTraceType() != null) {
-			createTraceOperation.setChooseTraceType((a, b) -> {
-				return Optional.of(SelectionView.getOpenedView().getSelectedTraceType());
-			});
+			createTraceOperation
+					.setChooseTraceType((a, b) -> Optional.of(SelectionView.getOpenedView().getSelectedTraceType()));
 		}
 		operationHistory.execute(createTraceOperation, null, adapter);
 		return null;
diff --git a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/helpers/SelectionSupportHelper.java b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/helpers/SelectionSupportHelper.java
index dbe776f..fbe73b7 100644
--- a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/helpers/SelectionSupportHelper.java
+++ b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/helpers/SelectionSupportHelper.java
@@ -38,11 +38,10 @@
  */

 public class SelectionSupportHelper {

 

-	private static final List<ISelectionSupport> SELECTION_SUPPORTS = new ArrayList<ISelectionSupport>();

+	private static final List<ISelectionSupport> SELECTION_SUPPORTS = new ArrayList<>();

 

 	static {

-		for (Object extension : ExtensionPointHelper.getExtensions("org.eclipse.capra.ui.selectionSupport",

-				"class")) {

+		for (Object extension : ExtensionPointHelper.getExtensions("org.eclipse.capra.ui.selectionSupport", "class")) {

 			SELECTION_SUPPORTS.add((ISelectionSupport) extension);

 		}

 	}

@@ -53,8 +52,7 @@
 	/**

 	 * Extract selected elements from an {@link ExecutionEvent}.

 	 * 

-	 * @param event

-	 *            This is the click event to create a trace

+	 * @param event This is the click event to create a trace

 	 * @return A list of all the selected elements

 	 */

 	public static List<Object> extractSelectedElements(final ExecutionEvent event) {

@@ -76,17 +74,15 @@
 	/**

 	 * Extract selected elements from an {@link ISelection} by delegating the

 	 * retrieval and unwrapping of the selection to the registered

-	 * {@link ISelectionSupport} instances. If this fails, the selected

-	 * elements of type {@link IAdaptable} are retrieved using

-	 * {@link IAdaptable#getAdapter(Class)}. If this fails, too, the list is

-	 * either empty or only contains those elements that are instances of type

+	 * {@link ISelectionSupport} instances. If this fails, the selected elements of

+	 * type {@link IAdaptable} are retrieved using

+	 * {@link IAdaptable#getAdapter(Class)}. If this fails, too, the list is either

+	 * empty or only contains those elements that are instances of type

 	 * {@code IAdaptable}.

 	 * 

-	 * @param selection

-	 *            the selection from the workbench part

-	 * @param workbenchPart

-	 *            the workbench part from which the selection should be

-	 *            extracted

+	 * @param selection     the selection from the workbench part

+	 * @param workbenchPart the workbench part from which the selection should be

+	 *                      extracted

 	 * @return a list of all selected elements retrieved using the first

 	 *         {@code IWorkbenchSelectionSupport} instance registered for the

 	 *         {@code WorkbenchPart} or all selected elements of type

@@ -135,11 +131,10 @@
 	 * {@code WorkbenchPart} handles EMF models. If this is not the case, this

 	 * method returns {@code null}.

 	 * 

-	 * @param part

-	 *            the {@code WorkbenchPart} whose {@code ResourceSet} should be

-	 *            retrieved

-	 * @return the {@code ResourceSet} used by {@code part} or {@code null} if

-	 *         no {@code ResourceSet} can be found

+	 * @param part the {@code WorkbenchPart} whose {@code ResourceSet} should be

+	 *             retrieved

+	 * @return the {@code ResourceSet} used by {@code part} or {@code null} if no

+	 *         {@code ResourceSet} can be found

 	 */

 	public static ResourceSet getResourceSet(final IWorkbenchPart part) {

 		ResourceSet resourceSet = null;

diff --git a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/operations/CreateTraceOperation.java b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/operations/CreateTraceOperation.java
index 19f34cf..19803e8 100644
--- a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/operations/CreateTraceOperation.java
+++ b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/operations/CreateTraceOperation.java
@@ -71,10 +71,6 @@
 
 	private BiFunction<Collection<EClass>, List<EObject>, Optional<EClass>> chooseTraceType = null;
 
-	private CreateTraceOperation(String label) {
-		super(label);
-	}
-
 	/**
 	 * Creates a new operation to create links.
 	 * 
@@ -130,8 +126,8 @@
 	 */
 	public void createTrace(Shell shell,
 			BiFunction<Collection<EClass>, List<EObject>, Optional<EClass>> chooseTraceType) {
-		TraceMetaModelAdapter traceAdapter = ExtensionPointHelper.getTraceMetamodelAdapter().get();
-		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+		TraceMetaModelAdapter traceAdapter = ExtensionPointHelper.getTraceMetamodelAdapter().orElseThrow();
+		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().orElseThrow();
 
 		ResourceSet resourceSet = new ResourceSetImpl();
 		// add trace model to resource set
@@ -203,10 +199,10 @@
 	}
 
 	private String getSelectionDisplayName(EObject element) {
-		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().orElseThrow();
 		EObject artifactModel = persistenceAdapter.getArtifactWrappers(new ResourceSetImpl());
 		ArtifactHelper artifactHelper = new ArtifactHelper(artifactModel);
-		IArtifactHandler<?> handler = artifactHelper.getHandler(artifactHelper.unwrapWrapper(element)).get();
+		IArtifactHandler<?> handler = artifactHelper.getHandler(artifactHelper.unwrapWrapper(element)).orElseThrow();
 
 		return handler.withCastedHandler(artifactHelper.unwrapWrapper(element), (h, o) -> h.getDisplayName(o))
 				.orElse(EMFHelper.getIdentifier(element));
diff --git a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/preferences/CapraPreferences.java b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/preferences/CapraPreferences.java
index cf5576e..749d705 100644
--- a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/preferences/CapraPreferences.java
+++ b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/preferences/CapraPreferences.java
@@ -28,8 +28,6 @@
 	public static final String SHOW_TRACE_CREATED_CONFIRMATION_DIALOG_LABEL = "Show confirmation after a trace link has been created";
 	private static final String PREFERENCE_PAGE_DESCRIPTION = "Eclipse Capra UI Preferences";
 
-	private BooleanFieldEditor booleanEditor;
-
 	@Override
 	public void init(IWorkbench workbench) {
 		setDescription(PREFERENCE_PAGE_DESCRIPTION);
@@ -38,7 +36,7 @@
 
 	@Override
 	protected void createFieldEditors() {
-		booleanEditor = new BooleanFieldEditor(SHOW_TRACE_CREATED_CONFIRMATION_DIALOG,
+		BooleanFieldEditor booleanEditor = new BooleanFieldEditor(SHOW_TRACE_CREATED_CONFIRMATION_DIALOG,
 				SHOW_TRACE_CREATED_CONFIRMATION_DIALOG_LABEL, getFieldEditorParent());
 		addField(booleanEditor);
 	}
diff --git a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/views/SelectionView.java b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/views/SelectionView.java
index 9048fde..47cca83 100644
--- a/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/views/SelectionView.java
+++ b/bundles/org.eclipse.capra.ui/src/org/eclipse/capra/ui/views/SelectionView.java
@@ -92,12 +92,12 @@
 	/**
 	 * The actual table containing selected elements.
 	 */
-	public TableViewer artifactTable;
+	private TableViewer artifactTable;
 
 	/**
 	 * The combo box to select the trace type.
 	 */
-	public ComboViewer traceTypeCombo;
+	private ComboViewer traceTypeCombo;
 
 	/**
 	 * The maintained selection of EObjects .
@@ -110,16 +110,6 @@
 	 */
 	private IUndoContext undoContext = IOperationHistory.GLOBAL_UNDO_CONTEXT;
 
-	/**
-	 * Action handler to undo the creation of a trace.
-	 */
-	private UndoActionHandler undoAction;
-
-	/**
-	 * Action handler to redo the creation of a trace.
-	 */
-	private RedoActionHandler redoAction;
-
 	private Collection<EClass> traceTypes = new ArrayList<>();
 
 	/**
@@ -129,7 +119,7 @@
 
 		@Override
 		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
+			// We do not need to react to this event.
 		}
 
 		@Override
@@ -150,7 +140,7 @@
 
 		@Override
 		public String getText(Object element) {
-			return (element == null || !(element instanceof EClass)) ? "" : ((EClass) element).getName();//$NON-NLS-1$
+			return (!(element instanceof EClass)) ? "" : ((EClass) element).getName();//$NON-NLS-1$
 		}
 
 	}
@@ -162,10 +152,11 @@
 
 		@Override
 		public String getText(Object element) {
-			TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+			TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter()
+					.orElseThrow();
 			EObject artifactModel = persistenceAdapter.getArtifactWrappers(new ResourceSetImpl());
 			ArtifactHelper artifactHelper = new ArtifactHelper(artifactModel);
-			IArtifactHandler<?> handler = artifactHelper.getHandler(element).get();
+			IArtifactHandler<?> handler = artifactHelper.getHandler(element).orElseThrow();
 			return handler.withCastedHandler(element, (h, o) -> h.getDisplayName(o)).orElseGet(element::toString);
 		}
 
@@ -246,7 +237,7 @@
 
 		int ops = DND.DROP_COPY | DND.DROP_MOVE;
 
-		List<Transfer> transfers = new ArrayList<Transfer>(Arrays.asList(DEFAULT_TRANSFERS));
+		List<Transfer> transfers = new ArrayList<>(Arrays.asList(DEFAULT_TRANSFERS));
 
 		// Get all additionally configured transfers from the extension point.
 		transfers.addAll(ExtensionPointHelper.getExtensions(TRANSFER_EXTENSION_POINT_ID, "class").stream()
@@ -264,7 +255,7 @@
 		menuMgr.addMenuListener(new IMenuListener() {
 			@Override
 			public void menuAboutToShow(IMenuManager manager) {
-
+				// Do something here
 			}
 		});
 		Menu menu = menuMgr.createContextMenu(artifactTable.getControl());
@@ -299,8 +290,8 @@
 	}
 
 	private void refreshAvailableTraceTypes() {
-		TraceMetaModelAdapter traceAdapter = ExtensionPointHelper.getTraceMetamodelAdapter().get();
-		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+		TraceMetaModelAdapter traceAdapter = ExtensionPointHelper.getTraceMetamodelAdapter().orElseThrow();
+		TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().orElseThrow();
 
 		ResourceSet resourceSet = new ResourceSetImpl();
 		// add artifact model to resource set
@@ -309,7 +300,7 @@
 		ArtifactHelper artifactHelper = new ArtifactHelper(artifactModel);
 
 		// Create the artifact wrappers
-		List<EObject> wrappers = artifactHelper.createWrappers(new ArrayList<Object>(selection));
+		List<EObject> wrappers = artifactHelper.createWrappers(new ArrayList<>(selection));
 
 		// Get the type of trace to be created
 		traceTypes = traceAdapter.getAvailableTraceTypes(wrappers);
@@ -322,7 +313,7 @@
 				.filter(handler -> handler.canHandleArtifact(target)).collect(toList());
 
 		Optional<PriorityHandler> priorityHandler = ExtensionPointHelper.getPriorityHandler();
-		if (availableHandlers.size() == 0) {
+		if (availableHandlers.isEmpty()) {
 			MessageDialog.openWarning(getSite().getShell(), "No handler for selected item",
 					"There is no handler for " + target + " so it will be ignored.");
 		} else if (availableHandlers.size() > 1 && !priorityHandler.isPresent()) {
@@ -337,7 +328,7 @@
 	}
 
 	public List<Object> getSelection() {
-		return new ArrayList<Object>(selection);
+		return new ArrayList<>(selection);
 	}
 
 	public void clearSelection() {
@@ -368,8 +359,8 @@
 
 	private void createGlobalActionHandlers() {
 		// set up action handlers that operate on the current context
-		undoAction = new UndoActionHandler(this.getSite(), undoContext);
-		redoAction = new RedoActionHandler(this.getSite(), undoContext);
+		UndoActionHandler undoAction = new UndoActionHandler(this.getSite(), undoContext);
+		RedoActionHandler redoAction = new RedoActionHandler(this.getSite(), undoContext);
 		IActionBars actionBars = getViewSite().getActionBars();
 		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), undoAction);
 		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), redoAction);