diff options
author | Jonathan E. Jensen | 2013-08-19 19:11:01 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2013-08-20 00:10:04 +0000 |
commit | 8c6dc526495d26c2e8e1b83fab6b3b3fb0ef9fa8 (patch) | |
tree | e880144708e5220cbddce6338062d053b24abe1e | |
parent | 88df15dcae26c012fe69be18dac1b47c89840b5b (diff) | |
download | org.eclipse.osee-8c6dc526495d26c2e8e1b83fab6b3b3fb0ef9fa8.tar.gz org.eclipse.osee-8c6dc526495d26c2e8e1b83fab6b3b3fb0ef9fa8.tar.xz org.eclipse.osee-8c6dc526495d26c2e8e1b83fab6b3b3fb0ef9fa8.zip |
bug: BLAM fixes for trace reports
Change-Id: Ic334ea23fc91f5ade852dd22989a483f3e6a1f8e
Signed-off-by: Jonathan E. Jensen <jonathan.e.jensen2@boeing.com>
6 files changed, 44 insertions, 35 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DetailedTestStatusOld.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DetailedTestStatusOld.java index 52f884eee57..b43448566d9 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DetailedTestStatusOld.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/DetailedTestStatusOld.java @@ -50,6 +50,7 @@ import org.eclipse.osee.ats.util.widgets.XAtsProgramComboWidget; import org.eclipse.osee.define.traceability.RequirementTraceabilityData; import org.eclipse.osee.define.traceability.ScriptTraceabilityOperation; import org.eclipse.osee.define.traceability.TraceUnitExtensionManager; +import org.eclipse.osee.define.traceability.TraceUnitExtensionManager.TraceHandler; import org.eclipse.osee.define.traceability.TraceabilityProviderOperation; import org.eclipse.osee.define.traceability.report.RequirementStatus; import org.eclipse.osee.framework.core.data.IOseeBranch; @@ -235,16 +236,17 @@ public class DetailedTestStatusOld extends AbstractBlam { loadTestRunArtifacts(scriptsBranch); - Collection<String> traceHandlerIds = new LinkedList<String>(); + Collection<TraceHandler> traceHandlers = new LinkedList<TraceHandler>(); for (String handler : availableTraceHandlers) { if (variableMap.getBoolean(handler)) { - traceHandlerIds.add(handler); + TraceHandler traceHandler = TraceUnitExtensionManager.getInstance().getTraceHandlerByName(handler); + traceHandlers.add(traceHandler); } } // Load Requirements Data TraceabilityProviderOperation provider = - new ScriptTraceabilityOperation(scriptDir, requirementsBranch, false, traceHandlerIds); + new ScriptTraceabilityOperation(scriptDir, requirementsBranch, false, traceHandlers); RequirementTraceabilityData traceabilityData = new RequirementTraceabilityData(procedureBranch, provider); IStatus status = traceabilityData.initialize(monitor); diff --git a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SubsystemFullTraceReport.java b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SubsystemFullTraceReport.java index 18dbf0f11a5..ab59b964c6f 100644 --- a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SubsystemFullTraceReport.java +++ b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/blam/operation/SubsystemFullTraceReport.java @@ -22,6 +22,7 @@ import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.osee.define.traceability.ScriptTraceabilityOperation; import org.eclipse.osee.define.traceability.TraceUnitExtensionManager; +import org.eclipse.osee.define.traceability.TraceUnitExtensionManager.TraceHandler; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; import org.eclipse.osee.framework.core.enums.CoreAttributeTypes; @@ -96,10 +97,11 @@ public class SubsystemFullTraceReport extends AbstractBlam { String scriptDir = variableMap.getString(SCRIPT_ROOT_DIR); Boolean checked = variableMap.getBoolean(USE_TRACE_IN_OSEE); - Collection<String> traceHandlerIds = new LinkedList<String>(); + Collection<TraceHandler> traceHandlers = new LinkedList<TraceHandler>(); for (String handler : availableTraceHandlers) { if (variableMap.getBoolean(handler)) { - traceHandlerIds.add(handler); + TraceHandler traceHandler = TraceUnitExtensionManager.getInstance().getTraceHandlerByName(handler); + traceHandlers.add(traceHandler); } } @@ -107,7 +109,7 @@ public class SubsystemFullTraceReport extends AbstractBlam { File dir = new File(scriptDir); if (dir.exists()) { ScriptTraceabilityOperation traceOperation = - new ScriptTraceabilityOperation(dir.getParentFile(), branch, false, traceHandlerIds); + new ScriptTraceabilityOperation(dir.getParentFile(), branch, false, traceHandlers); Operations.executeWorkAndCheckStatus(traceOperation, monitor); requirementsToCodeUnits = traceOperation.getRequirementToCodeUnitsMap(); } @@ -217,8 +219,8 @@ public class SubsystemFullTraceReport extends AbstractBlam { sb.append("<XWidget xwidgetType=\"XText\" displayName=\"" + SCRIPT_ROOT_DIR + "\" defaultValue=\"C:/UserData/workspaceScripts\" toolTip=\"Leave blank if test script traceability is not needed.\" />"); availableTraceHandlers = new LinkedList<String>(); sb.append("<XWidget xwidgetType=\"XLabel\" displayName=\"Select appropriate script parser (if script traceability needed):\" />"); - Collection<String> traceHandlers = TraceUnitExtensionManager.getInstance().getAllTraceHandlerNames(); - for (String handler : traceHandlers) { + Collection<String> traceHandlerNames = TraceUnitExtensionManager.getInstance().getAllTraceHandlerNames(); + for (String handler : traceHandlerNames) { sb.append(String.format(TRACE_HANDLER_CHECKBOX, handler)); availableTraceHandlers.add(handler); } diff --git a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/ImportTraceabilityWizard.java b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/ImportTraceabilityWizard.java index 7cc2ba0634e..7f01b262486 100644 --- a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/ImportTraceabilityWizard.java +++ b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/ImportTraceabilityWizard.java @@ -11,10 +11,12 @@ package org.eclipse.osee.define.traceability; import java.io.File; -import java.util.Arrays; +import java.util.Collection; +import java.util.LinkedList; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.osee.define.internal.Activator; +import org.eclipse.osee.define.traceability.TraceUnitExtensionManager.TraceHandler; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.core.operation.Operations; import org.eclipse.osee.framework.logging.OseeLevel; @@ -39,9 +41,11 @@ public class ImportTraceabilityWizard extends Wizard implements IImportWizard { try { IOseeBranch branch = mainPage.getSelectedBranch(); File file = mainPage.getImportFile(); - String[] handerIds = mainPage.getTraceUnitHandlerIds(); - Operations.executeWorkAndCheckStatus(new ScriptTraceabilityOperation(file, branch, true, - Arrays.asList(handerIds))); + Collection<TraceHandler> handlers = new LinkedList<TraceHandler>(); + for (String handlerId : mainPage.getTraceUnitHandlerIds()) { + handlers.add(TraceUnitExtensionManager.getInstance().getTraceUnitHandlerById(handlerId)); + } + Operations.executeWorkAndCheckStatus(new ScriptTraceabilityOperation(file, branch, true, handlers)); } catch (Exception ex) { OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, "Traceability Import Error", ex); } diff --git a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/ScriptTraceabilityOperation.java b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/ScriptTraceabilityOperation.java index 1acc43d2a28..6f423b8d067 100644 --- a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/ScriptTraceabilityOperation.java +++ b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/ScriptTraceabilityOperation.java @@ -32,7 +32,6 @@ import org.eclipse.osee.framework.core.enums.CoreAttributeTypes; import org.eclipse.osee.framework.core.exception.OseeArgumentException; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; -import org.eclipse.osee.framework.core.util.Conditions; import org.eclipse.osee.framework.jdk.core.type.CountingMap; import org.eclipse.osee.framework.jdk.core.type.HashCollection; import org.eclipse.osee.framework.jdk.core.type.Pair; @@ -62,7 +61,7 @@ public class ScriptTraceabilityOperation extends TraceabilityProviderOperation { private static final Matcher stripTrailingReqNameMatcher = Pattern.compile("(\\}|\\])(.*)").matcher(""); private static final Matcher nonWordMatcher = Pattern.compile("[^A-Z_0-9]").matcher(""); - private final Collection<String> traceHandlerIds; + private final Collection<TraceHandler> traceHandlers; private final File file; private final RequirementData requirementData; private final ArrayList<String> noTraceabilityFiles = new ArrayList<String>(200); @@ -75,27 +74,26 @@ public class ScriptTraceabilityOperation extends TraceabilityProviderOperation { private int pathPrefixLength; private final boolean writeOutResults; - private ScriptTraceabilityOperation(RequirementData requirementData, File file, boolean writeOutResults, Collection<String> traceHandlerIds) throws IOException { + private ScriptTraceabilityOperation(RequirementData requirementData, File file, boolean writeOutResults, Collection<TraceHandler> traceHandlers) throws IOException { super("Importing Traceability", Activator.PLUGIN_ID); this.file = file; this.requirementData = requirementData; this.writeOutResults = writeOutResults; - this.traceHandlerIds = traceHandlerIds; + this.traceHandlers = traceHandlers; charBak = new CharBackedInputStream(); excelWriter = new ExcelXmlWriter(charBak.getWriter()); } - public ScriptTraceabilityOperation(File file, IOseeBranch branch, boolean writeOutResults, Collection<String> traceHandlerIds) throws IOException { - this(new RequirementData(branch), file, writeOutResults, traceHandlerIds); + public ScriptTraceabilityOperation(File file, IOseeBranch branch, boolean writeOutResults, Collection<TraceHandler> traceHandlers) throws IOException { + this(new RequirementData(branch), file, writeOutResults, traceHandlers); } - public ScriptTraceabilityOperation(File file, IOseeBranch branch, boolean writeOutResults, Collection<? extends IArtifactType> types, boolean withInheritance, Collection<String> traceHandlerIds) throws IOException { - this(new RequirementData(branch, types, withInheritance), file, writeOutResults, traceHandlerIds); + public ScriptTraceabilityOperation(File file, IOseeBranch branch, boolean writeOutResults, Collection<? extends IArtifactType> types, boolean withInheritance, Collection<TraceHandler> traceHandlers) throws IOException { + this(new RequirementData(branch, types, withInheritance), file, writeOutResults, traceHandlers); } @Override protected void doWork(IProgressMonitor monitor) throws Exception { - Collection<TraceHandler> traceHandlers = getTraceHandlers(); monitor.worked(1); requirementData.initialize(monitor); @@ -130,17 +128,6 @@ public class ScriptTraceabilityOperation extends TraceabilityProviderOperation { } } - private Collection<TraceHandler> getTraceHandlers() throws OseeCoreException { - Conditions.checkNotNullOrEmpty(traceHandlerIds, "traceHandlerIds"); - Collection<TraceHandler> handlers = new LinkedList<TraceHandler>(); - for (String id : traceHandlerIds) { - TraceHandler handler = TraceUnitExtensionManager.getInstance().getTraceUnitHandlerById(id); - Conditions.checkNotNull(handler, "handler"); - handlers.add(handler); - } - return handlers; - } - private void handleDirectory(File directory, Collection<TraceHandler> traceHandlers) throws IOException, OseeCoreException { if (directory == null || directory.getParentFile() == null) { throw new OseeArgumentException("The path [%s] is invalid.", directory); diff --git a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/TraceUnitExtensionManager.java b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/TraceUnitExtensionManager.java index 71543a5dfbf..6345eead3bb 100644 --- a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/TraceUnitExtensionManager.java +++ b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/TraceUnitExtensionManager.java @@ -66,6 +66,18 @@ public class TraceUnitExtensionManager { return contributions.get(id); } + public TraceHandler getTraceHandlerByName(String name) throws OseeCoreException { + checkObjectsLoaded(); + TraceHandler toReturn = null; + for (TraceHandler handler : getAllTraceHandlers()) { + if (handler.getName().equals(name)) { + toReturn = handler; + break; + } + } + return toReturn; + } + public ITraceParser getTraceParserById(String id) throws OseeCoreException { TraceHandler traceUnitHandler = getTraceUnitHandlerById(id); if (traceUnitHandler != null) { diff --git a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/report/PublishStdStpTraceability.java b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/report/PublishStdStpTraceability.java index c3c848a587d..11cd02bb46d 100644 --- a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/report/PublishStdStpTraceability.java +++ b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/traceability/report/PublishStdStpTraceability.java @@ -23,6 +23,7 @@ import org.eclipse.osee.define.traceability.BranchTraceabilityOperation; import org.eclipse.osee.define.traceability.RequirementTraceabilityData; import org.eclipse.osee.define.traceability.ScriptTraceabilityOperation; import org.eclipse.osee.define.traceability.TraceUnitExtensionManager; +import org.eclipse.osee.define.traceability.TraceUnitExtensionManager.TraceHandler; import org.eclipse.osee.define.traceability.TraceabilityFactory; import org.eclipse.osee.define.traceability.TraceabilityFactory.OutputFormat; import org.eclipse.osee.define.traceability.TraceabilityFactory.TraceabilityStyle; @@ -121,10 +122,11 @@ public class PublishStdStpTraceability extends AbstractBlam { File scriptDir = new File(variableMap.getString("Script Root Directory")); List<TraceabilityStyle> selectedReports = getStyles(variableMap); - Collection<String> traceHandlerIds = new LinkedList<String>(); + Collection<TraceHandler> traceHandlers = new LinkedList<TraceHandler>(); for (String handler : availableTraceHandlers) { if (variableMap.getBoolean(handler)) { - traceHandlerIds.add(handler); + TraceHandler traceHandler = TraceUnitExtensionManager.getInstance().getTraceHandlerByName(handler); + traceHandlers.add(traceHandler); } } @@ -140,7 +142,7 @@ public class PublishStdStpTraceability extends AbstractBlam { } else { provider = new ScriptTraceabilityOperation(scriptDir, requirementsBranch, false, types, searchInherited, - traceHandlerIds); + traceHandlers); } RequirementTraceabilityData traceabilityData = new RequirementTraceabilityData(testProcedureBranch, provider); IStatus status = traceabilityData.initialize(monitor); |