Address Sonar issues in generic implementations
This commit addresses a number of bugs and
code smells reported by Sonar in the generic
packages of Eclipse Capra.
Change-Id: Ib9f45536bc3ded91ffb2b8202dedadf62fe8aa9c
diff --git a/bundles/org.eclipse.capra.generic.persistence/META-INF/MANIFEST.MF b/bundles/org.eclipse.capra.generic.persistence/META-INF/MANIFEST.MF
index 2051273..37435bf 100644
--- a/bundles/org.eclipse.capra.generic.persistence/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.capra.generic.persistence/META-INF/MANIFEST.MF
@@ -11,4 +11,5 @@
org.eclipse.capra.core
Bundle-RequiredExecutionEnvironment: JavaSE-11
Export-Package: org.eclipse.capra.generic.persistance
+Import-Package: org.slf4j
Automatic-Module-Name: org.eclipse.capra.generic.persistence
diff --git a/bundles/org.eclipse.capra.generic.persistence/src/org/eclipse/capra/generic/persistance/TracePersistenceAdapter.java b/bundles/org.eclipse.capra.generic.persistence/src/org/eclipse/capra/generic/persistance/TracePersistenceAdapter.java
index 80ea702..970ccb9 100644
--- a/bundles/org.eclipse.capra.generic.persistence/src/org/eclipse/capra/generic/persistance/TracePersistenceAdapter.java
+++ b/bundles/org.eclipse.capra.generic.persistence/src/org/eclipse/capra/generic/persistance/TracePersistenceAdapter.java
@@ -29,6 +29,8 @@
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This generic implementation of
@@ -38,6 +40,8 @@
*/
public class TracePersistenceAdapter implements org.eclipse.capra.core.adapters.TracePersistenceAdapter {
+ private static final Logger LOG = LoggerFactory.getLogger(TracePersistenceAdapter.class);
+
private static final String DEFAULT_PROJECT_NAME = "__WorkspaceTraceModels";
private static final String DEFAULT_TRACE_MODEL_NAME = "traceModel.xmi";
private static final String DEFAULT_ARTIFACT_WRAPPER_MODEL_NAME = "artifactWrappers.xmi";
@@ -51,7 +55,7 @@
return Optional.of(resource.getContents().get(0));
} catch (IOException e) {
- e.printStackTrace();
+ LOG.error("Could not load model", e);
}
}
return Optional.empty();
@@ -59,7 +63,7 @@
@Override
public EObject getTraceModel(ResourceSet resourceSet) {
- TraceMetaModelAdapter adapter = ExtensionPointHelper.getTraceMetamodelAdapter().get();
+ TraceMetaModelAdapter adapter = ExtensionPointHelper.getTraceMetamodelAdapter().orElseThrow();
return loadModel(resourceSet, DEFAULT_TRACE_MODEL_NAME).orElse(adapter.createModel());
}
@@ -99,14 +103,13 @@
resourceForArtifacts.save(null);
resource.save(null);
} catch (Exception e) {
- System.err.println("Unable to save trace model!");
- e.printStackTrace();
+ LOG.error("Unable to save trace model!", e);
}
}
@Override
public EObject getArtifactWrappers(ResourceSet resourceSet) {
- ArtifactMetaModelAdapter adapter = ExtensionPointHelper.getArtifactWrapperMetaModelAdapter().get();
+ ArtifactMetaModelAdapter adapter = ExtensionPointHelper.getArtifactWrapperMetaModelAdapter().orElseThrow();
return loadModel(resourceSet, DEFAULT_ARTIFACT_WRAPPER_MODEL_NAME).orElse(adapter.createModel());
}
diff --git a/bundles/org.eclipse.capra.generic.priority/src/org/eclipse/capra/generic/priority/DefaultPriorityHandler.java b/bundles/org.eclipse.capra.generic.priority/src/org/eclipse/capra/generic/priority/DefaultPriorityHandler.java
index 859b705..fc76d14 100644
--- a/bundles/org.eclipse.capra.generic.priority/src/org/eclipse/capra/generic/priority/DefaultPriorityHandler.java
+++ b/bundles/org.eclipse.capra.generic.priority/src/org/eclipse/capra/generic/priority/DefaultPriorityHandler.java
@@ -31,7 +31,7 @@
public <T> IArtifactHandler<? extends T> getSelectedHandler(
Collection<? extends IArtifactHandler<? extends T>> handlers, Object artifact) {
return handlers.stream().filter(handler -> handler.canHandleArtifact(artifact))
- .max(new ArtifactHandlerPriorityComparator()).get();
+ .max(new ArtifactHandlerPriorityComparator()).orElseThrow();
}
/**
diff --git a/bundles/org.eclipse.capra.generic.tracemodel/src/org/eclipse/capra/generic/tracemodel/GenericMetaModelAdapter.java b/bundles/org.eclipse.capra.generic.tracemodel/src/org/eclipse/capra/generic/tracemodel/GenericMetaModelAdapter.java
index 56ea5d7..f7c6624 100644
--- a/bundles/org.eclipse.capra.generic.tracemodel/src/org/eclipse/capra/generic/tracemodel/GenericMetaModelAdapter.java
+++ b/bundles/org.eclipse.capra.generic.tracemodel/src/org/eclipse/capra/generic/tracemodel/GenericMetaModelAdapter.java
@@ -28,16 +28,12 @@
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Provides generic functionality to deal with traceability meta models.
*/
public class GenericMetaModelAdapter extends AbstractMetaModelAdapter implements TraceMetaModelAdapter {
- private static final Logger LOG = LoggerFactory.getLogger(GenericMetaModelAdapter.class);
-
private static final int DEFAULT_INITIAL_TRANSITIVITY_DEPTH = 1;
public GenericMetaModelAdapter() {
@@ -64,7 +60,7 @@
EObject trace = TracemodelFactory.eINSTANCE.create(traceType);
RelatedTo relatedToTrace = (RelatedTo) trace;
relatedToTrace.getItem().addAll(selection);
- TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+ TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().orElseThrow();
EObject artifactModel = persistenceAdapter.getArtifactWrappers(new ResourceSetImpl());
ArtifactHelper artifactHelper = new ArtifactHelper(artifactModel);
@@ -74,7 +70,7 @@
StringBuilder name = new StringBuilder();
for (Object obj : selection) {
name.append(" ")
- .append(artifactHelper.getHandler(artifactHelper.unwrapWrapper(obj)).get()
+ .append(artifactHelper.getHandler(artifactHelper.unwrapWrapper(obj)).orElseThrow()
.withCastedHandler(artifactHelper.unwrapWrapper(obj), (h, e) -> h.getDisplayName(e))
.orElseGet(obj::toString));
}
@@ -86,18 +82,16 @@
@Override
public boolean isThereATraceBetween(EObject firstElement, EObject secondElement, EObject traceModel) {
GenericTraceModel root = (GenericTraceModel) traceModel;
- List<RelatedTo> relevantLinks = new ArrayList<RelatedTo>();
+ List<RelatedTo> relevantLinks = new ArrayList<>();
List<RelatedTo> allTraces = root.getTraces();
for (RelatedTo trace : allTraces) {
- if (!firstElement.equals(secondElement)) {
- if (EMFHelper.isElementInList(trace.getItem(), firstElement)
- && EMFHelper.isElementInList(trace.getItem(), secondElement)) {
- relevantLinks.add(trace);
- }
+ if (!firstElement.equals(secondElement) && EMFHelper.isElementInList(trace.getItem(), firstElement)
+ && EMFHelper.isElementInList(trace.getItem(), secondElement)) {
+ relevantLinks.add(trace);
}
}
- return relevantLinks.size() > 0;
+ return !relevantLinks.isEmpty();
}
@Override
@@ -128,7 +122,7 @@
List<Connection> connections = new ArrayList<>();
List<RelatedTo> traces = root.getTraces();
- if (selectedRelationshipTypes.size() == 0
+ if (selectedRelationshipTypes.isEmpty()
|| selectedRelationshipTypes.contains(TracemodelPackage.eINSTANCE.getRelatedTo().getName())) {
if (element instanceof RelatedTo) {
RelatedTo trace = (RelatedTo) element;
@@ -205,7 +199,8 @@
tModel.getTraces().remove(trace);
}
- TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter().get();
+ TracePersistenceAdapter persistenceAdapter = ExtensionPointHelper.getTracePersistenceAdapter()
+ .orElseThrow();
persistenceAdapter.saveTracesAndArtifacts(tModel,
persistenceAdapter.getArtifactWrappers(new ResourceSetImpl()));
}