Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2017-05-09 11:34:59 -0400
committerDonald Dunne2017-05-11 14:09:49 -0400
commitb37d7a257cef074fef33a24e3b481013603f366d (patch)
treee874e1345cd8eaf565e53bbe4aeaab3166c9272d
parentae7b3f6e3913c3c03295fb254de44b19cb956d47 (diff)
downloadorg.eclipse.osee-b37d7a257cef074fef33a24e3b481013603f366d.tar.gz
org.eclipse.osee-b37d7a257cef074fef33a24e3b481013603f366d.tar.xz
org.eclipse.osee-b37d7a257cef074fef33a24e3b481013603f366d.zip
bug[ats_ATS374993]: Improvements in support of action
-rw-r--r--plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/column/IWorkPackageColumn.java22
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractWorkPackageUtilityTest.java1
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidUtilityTest.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdUtilityTest.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameUtilityTest.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramUtilityTest.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeUtilityTest.java4
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AtsAttributeValueColumnHandler.java6
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AttributeColumn.java6
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionActivityColumn.java59
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionColumn.java57
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractRelatedWorkPackageColumn.java56
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java10
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageColumn.java41
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidColumn.java11
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdColumn.java15
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameColumn.java11
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramColumn.java15
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeColumn.java28
-rw-r--r--plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/program/AtsProgramService.java2
-rw-r--r--plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/io/xml/AbstractSheetWriter.java6
21 files changed, 303 insertions, 63 deletions
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/column/IWorkPackageColumn.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/column/IWorkPackageColumn.java
new file mode 100644
index 0000000000..9bbc850144
--- /dev/null
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/column/IWorkPackageColumn.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.ats.api.column;
+
+import java.util.Map;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
+
+/**
+ * @author Donald G. Dunne
+ */
+public interface IWorkPackageColumn {
+
+ public void setIdToWorkPackageCache(Map<String, ArtifactToken> guidToWorkPackage);
+}
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractWorkPackageUtilityTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractWorkPackageUtilityTest.java
index 4d97e01278..ad94e5c861 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractWorkPackageUtilityTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractWorkPackageUtilityTest.java
@@ -37,6 +37,7 @@ public abstract class AbstractWorkPackageUtilityTest {
public void setup() throws OseeCoreException {
MockitoAnnotations.initMocks(this);
when(earnedValueServiceProvider.getEarnedValueService()).thenReturn(earnedValueService);
+ when(earnedValueService.getWorkPackageId(workItem)).thenReturn("345");
when(earnedValueService.getWorkPackage(workItem)).thenReturn(workPkg);
}
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidUtilityTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidUtilityTest.java
index 3025ef091c..961d3a2790 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidUtilityTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidUtilityTest.java
@@ -19,7 +19,7 @@ import org.junit.Test;
/**
* Test case for {@link WorkPackageGuidColumn}
- *
+ *
* @author Donald G. Dunne
*/
public class WorkPackageGuidUtilityTest extends AbstractWorkPackageUtilityTest {
@@ -30,7 +30,7 @@ public class WorkPackageGuidUtilityTest extends AbstractWorkPackageUtilityTest {
@Before
public void setup() throws OseeCoreException {
super.setup();
- util = new WorkPackageGuidColumn(earnedValueServiceProvider);
+ util = new WorkPackageGuidColumn(earnedValueServiceProvider, null);
}
@Test
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdUtilityTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdUtilityTest.java
index 1e7869ac12..1d767d6fae 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdUtilityTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdUtilityTest.java
@@ -19,7 +19,7 @@ import org.junit.Test;
/**
* Test case for {@link WorkPackageIdColumn}
- *
+ *
* @author Donald G. Dunne
*/
public class WorkPackageIdUtilityTest extends AbstractWorkPackageUtilityTest {
@@ -30,7 +30,7 @@ public class WorkPackageIdUtilityTest extends AbstractWorkPackageUtilityTest {
@Before
public void setup() throws OseeCoreException {
super.setup();
- util = new WorkPackageIdColumn(earnedValueServiceProvider);
+ util = new WorkPackageIdColumn(earnedValueServiceProvider, null);
}
@Test
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameUtilityTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameUtilityTest.java
index 0ada8e7ed4..4624b5de8f 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameUtilityTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameUtilityTest.java
@@ -19,7 +19,7 @@ import org.junit.Test;
/**
* Test case for {@link WorkPackageNameColumn}
- *
+ *
* @author Donald G. Dunne
*/
public class WorkPackageNameUtilityTest extends AbstractWorkPackageUtilityTest {
@@ -30,7 +30,7 @@ public class WorkPackageNameUtilityTest extends AbstractWorkPackageUtilityTest {
@Before
public void setup() throws OseeCoreException {
super.setup();
- util = new WorkPackageNameColumn(earnedValueServiceProvider);
+ util = new WorkPackageNameColumn(earnedValueServiceProvider, null);
}
@Test
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramUtilityTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramUtilityTest.java
index b9909f4a6e..3f55aebf98 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramUtilityTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramUtilityTest.java
@@ -19,7 +19,7 @@ import org.junit.Test;
/**
* Test case for {@link WorkPackageProgramColumn}
- *
+ *
* @author Donald G. Dunne
*/
public class WorkPackageProgramUtilityTest extends AbstractWorkPackageUtilityTest {
@@ -30,7 +30,7 @@ public class WorkPackageProgramUtilityTest extends AbstractWorkPackageUtilityTes
@Before
public void setup() throws OseeCoreException {
super.setup();
- util = new WorkPackageProgramColumn(earnedValueServiceProvider);
+ util = new WorkPackageProgramColumn(earnedValueServiceProvider, null);
}
@Test
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeUtilityTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeUtilityTest.java
index 948da4d999..4355848dc6 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeUtilityTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeUtilityTest.java
@@ -20,7 +20,7 @@ import org.junit.Test;
/**
* Test case for {@link WorkPackageTypeColumn}
- *
+ *
* @author Donald G. Dunne
*/
public class WorkPackageTypeUtilityTest extends AbstractWorkPackageUtilityTest {
@@ -31,7 +31,7 @@ public class WorkPackageTypeUtilityTest extends AbstractWorkPackageUtilityTest {
@Before
public void setup() throws OseeCoreException {
super.setup();
- util = new WorkPackageTypeColumn(earnedValueServiceProvider);
+ util = new WorkPackageTypeColumn(earnedValueServiceProvider, null);
}
@Test
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AtsAttributeValueColumnHandler.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AtsAttributeValueColumnHandler.java
index b662793e07..b5e1989f60 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AtsAttributeValueColumnHandler.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AtsAttributeValueColumnHandler.java
@@ -22,7 +22,6 @@ import org.eclipse.osee.ats.api.workflow.IAtsAction;
import org.eclipse.osee.ats.api.workflow.IAtsTeamWorkflow;
import org.eclipse.osee.ats.core.internal.column.ev.AtsColumnService;
import org.eclipse.osee.framework.core.data.AttributeTypeId;
-import org.eclipse.osee.framework.core.data.AttributeTypeId;
import org.eclipse.osee.framework.jdk.core.util.Collections;
import org.eclipse.osee.framework.jdk.core.util.Strings;
@@ -98,4 +97,9 @@ public class AtsAttributeValueColumnHandler implements IAtsColumn {
return getColumnText(atsObject, attributeType.getId(), isActionRollup, inheritParent, services);
}
+ @Override
+ public String toString() {
+ return "AtsAttributeValueColumnHandler [attrType=" + column.getAttrTypeName() + "]";
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AttributeColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AttributeColumn.java
index c05c613fc1..d765e2bc6c 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AttributeColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/AttributeColumn.java
@@ -31,4 +31,10 @@ public class AttributeColumn extends AbstractServicesColumn {
public String getText(IAtsObject atsObject) {
return Collections.toString("; ", services.getAttributeResolver().getAttributesToStringList(atsObject, attrType));
}
+
+ @Override
+ public String toString() {
+ return "AttributeColumn [attrType=" + attrType + "]";
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionActivityColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionActivityColumn.java
index ed5dea4503..951b012fb2 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionActivityColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionActivityColumn.java
@@ -10,51 +10,84 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.column;
+import java.util.Map;
import org.eclipse.osee.ats.api.IAtsObject;
import org.eclipse.osee.ats.api.IAtsServices;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
import org.eclipse.osee.ats.api.insertion.IAtsInsertionActivity;
import org.eclipse.osee.ats.core.config.WorkPackageUtility;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.jdk.core.type.Pair;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
/**
* @author Donald G. Dunne
*/
public class InsertionActivityColumn extends AbstractServicesColumn {
+ private Map<Object, ArtifactToken> idToInsertionActivity;
+
public InsertionActivityColumn(IAtsServices services) {
super(services);
}
+ /**
+ * Set optional map to use as a cache of work item id (Long) or work package guid (String) to Insertion Activity
+ * artifact.
+ */
+ public void setIdToInsertionActivityCache(Map<Object, ArtifactToken> idToInsertionActivity) {
+ this.idToInsertionActivity = idToInsertionActivity;
+ }
+
@Override
public String getText(IAtsObject atsObject) {
String format = "%s";
if (services.getStoreService().isDeleted(atsObject)) {
format = "<Deleted> %s";
}
- return String.format(format, getInsertionActivityStr(atsObject, services));
+ return String.format(format,
+ getInsertionActivityStr(atsObject, services, CountryColumn.getUtil(), idToInsertionActivity));
}
- public static String getInsertionActivityStr(IAtsObject atsObject, IAtsServices services) throws OseeCoreException {
+ public static String getInsertionActivityStr(IAtsObject atsObject, IAtsServices services) {
return getInsertionActivityStr(atsObject, services, CountryColumn.getUtil());
}
- public static String getInsertionActivityStr(IAtsObject atsObject, IAtsServices services, WorkPackageUtility util) throws OseeCoreException {
+ public static String getInsertionActivityStr(IAtsObject atsObject, IAtsServices services, WorkPackageUtility util) {
+ return getInsertionActivityStr(atsObject, services, util, null);
+ }
+
+ public static String getInsertionActivityStr(IAtsObject atsObject, IAtsServices services, WorkPackageUtility utilMap, Map<Object, ArtifactToken> idToInsertionActivity) {
String result = "";
if (atsObject instanceof IAtsWorkItem) {
- IAtsWorkItem workItem = (IAtsWorkItem) atsObject;
- Pair<IAtsInsertionActivity, Boolean> insertionActivity = util.getInsertionActivity(services, workItem);
- if (insertionActivity.getFirst() != null) {
- result = String.format("%s%s", insertionActivity.getFirst().getName(),
- insertionActivity.getSecond() ? " (I)" : "");
+ if (idToInsertionActivity != null) {
+ ArtifactToken insertionArt = idToInsertionActivity.get(atsObject.getId());
+ if (insertionArt != null) {
+ result = insertionArt.getName();
+ }
+ }
+ if (Strings.isInValid(result)) {
+ IAtsWorkItem workItem = (IAtsWorkItem) atsObject;
+ Pair<IAtsInsertionActivity, Boolean> insertionActivity = utilMap.getInsertionActivity(services, workItem);
+ if (insertionActivity.getFirst() != null) {
+ result = String.format("%s%s", insertionActivity.getFirst().getName(),
+ insertionActivity.getSecond() ? " (I)" : "");
+ }
}
} else if (atsObject instanceof IAtsWorkPackage) {
- IAtsWorkPackage workPackage = (IAtsWorkPackage) atsObject;
- IAtsInsertionActivity insertionActivity = services.getProgramService().getInsertionActivity(workPackage);
- if (insertionActivity != null) {
- result = insertionActivity.getName();
+ if (idToInsertionActivity != null) {
+ ArtifactToken insertionActivityArt = idToInsertionActivity.get(((IAtsWorkPackage) atsObject).getGuid());
+ if (insertionActivityArt != null) {
+ result = insertionActivityArt.getName();
+ }
+ }
+ if (Strings.isInValid(result)) {
+ IAtsWorkPackage workPackage = (IAtsWorkPackage) atsObject;
+ IAtsInsertionActivity insertionActivity = services.getProgramService().getInsertionActivity(workPackage);
+ if (insertionActivity != null) {
+ result = insertionActivity.getName();
+ }
}
}
return result;
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionColumn.java
index 23f5878593..e9b535db28 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/column/InsertionColumn.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.column;
+import java.util.Map;
import org.eclipse.osee.ats.api.IAtsObject;
import org.eclipse.osee.ats.api.IAtsServices;
import org.eclipse.osee.ats.api.IAtsWorkItem;
@@ -17,45 +18,75 @@ import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
import org.eclipse.osee.ats.api.insertion.IAtsInsertion;
import org.eclipse.osee.ats.api.insertion.IAtsInsertionActivity;
import org.eclipse.osee.ats.core.config.WorkPackageUtility;
-import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.jdk.core.type.Pair;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
/**
* @author Donald G. Dunne
*/
public class InsertionColumn extends AbstractServicesColumn {
+ private Map<Object, ArtifactToken> idToInsertion;
+
public InsertionColumn(IAtsServices services) {
super(services);
}
+ /**
+ * Set optional map to use as a cache of work item id (Long) or work package guid (String) to Insertion artifact.
+ */
+ public void setIdToInsertionCache(Map<Object, ArtifactToken> idToInsertion) {
+ this.idToInsertion = idToInsertion;
+ }
+
@Override
public String getText(IAtsObject atsObject) {
String format = "%s";
if (services.getStoreService().isDeleted(atsObject)) {
format = "<Deleted> %s";
}
- return String.format(format, getInsertionStr(atsObject, services));
+ return String.format(format, getInsertionStr(atsObject, services, CountryColumn.getUtil(), idToInsertion));
}
- public static String getInsertionStr(IAtsObject atsObject, IAtsServices services) throws OseeCoreException {
+ public static String getInsertionStr(IAtsObject atsObject, IAtsServices services) {
return getInsertionStr(atsObject, services, CountryColumn.getUtil());
}
- public static String getInsertionStr(IAtsObject atsObject, IAtsServices services, WorkPackageUtility util) throws OseeCoreException {
+ public static String getInsertionStr(IAtsObject atsObject, IAtsServices services, WorkPackageUtility util) {
+ return getInsertionStr(atsObject, services, util, null);
+ }
+
+ public static String getInsertionStr(IAtsObject atsObject, IAtsServices services, WorkPackageUtility util, Map<Object, ArtifactToken> idToInsertion) {
String result = "";
if (atsObject instanceof IAtsWorkItem) {
- IAtsWorkItem workItem = (IAtsWorkItem) atsObject;
- Pair<IAtsInsertion, Boolean> insertion = util.getInsertion(services, workItem);
- if (insertion.getFirst() != null) {
- result = String.format("%s%s", insertion.getFirst().getName(), insertion.getSecond() ? " (I)" : "");
+ if (idToInsertion != null) {
+ ArtifactToken insertionArt = idToInsertion.get(atsObject.getId());
+ if (insertionArt != null) {
+ result = insertionArt.getName();
+ }
+ }
+ if (Strings.isInValid(result)) {
+ IAtsWorkItem workItem = (IAtsWorkItem) atsObject;
+ Pair<IAtsInsertion, Boolean> insertion = util.getInsertion(services, workItem);
+ if (insertion.getFirst() != null) {
+ result = String.format("%s%s", insertion.getFirst().getName(), insertion.getSecond() ? " (I)" : "");
+ }
}
} else if (atsObject instanceof IAtsWorkPackage) {
- IAtsWorkPackage workPackage = (IAtsWorkPackage) atsObject;
- IAtsInsertionActivity insertionActivity = services.getProgramService().getInsertionActivity(workPackage);
- if (insertionActivity != null) {
- IAtsInsertion insertion = services.getProgramService().getInsertion(insertionActivity);
- result = insertion.getName();
+ if (idToInsertion != null) {
+ ArtifactToken insertionArt = idToInsertion.get(((IAtsWorkPackage) atsObject).getGuid());
+ if (insertionArt != null) {
+ result = insertionArt.getName();
+ }
+ }
+ if (Strings.isInValid(result)) {
+ IAtsWorkPackage workPackage = (IAtsWorkPackage) atsObject;
+ IAtsInsertionActivity insertionActivity = services.getProgramService().getInsertionActivity(workPackage);
+ if (insertionActivity != null) {
+ IAtsInsertion insertion = services.getProgramService().getInsertion(insertionActivity);
+ result = insertion.getName();
+ }
}
}
return result;
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractRelatedWorkPackageColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractRelatedWorkPackageColumn.java
index f06794f259..041e493cb9 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractRelatedWorkPackageColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AbstractRelatedWorkPackageColumn.java
@@ -10,24 +10,40 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.internal.column.ev;
+import java.util.Map;
import org.eclipse.osee.ats.api.IAtsObject;
+import org.eclipse.osee.ats.api.IAtsServices;
import org.eclipse.osee.ats.api.IAtsWorkItem;
import org.eclipse.osee.ats.api.column.IAtsColumn;
+import org.eclipse.osee.ats.api.column.IWorkPackageColumn;
import org.eclipse.osee.ats.api.ev.IAtsEarnedValueServiceProvider;
import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
/**
* Provides for display of ActivityId and ActivityName from related Work Package
- *
+ *
* @author Donald G. Dunne
*/
-public abstract class AbstractRelatedWorkPackageColumn implements IAtsColumn {
+public abstract class AbstractRelatedWorkPackageColumn implements IAtsColumn, IWorkPackageColumn {
private final IAtsEarnedValueServiceProvider earnedValueServiceProvider;
+ private Map<String, ArtifactToken> guidToWorkPackage;
+ protected final IAtsServices services;
- public AbstractRelatedWorkPackageColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) {
+ public AbstractRelatedWorkPackageColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider, IAtsServices services) {
this.earnedValueServiceProvider = earnedValueServiceProvider;
+ this.services = services;
+ }
+
+ /**
+ * Set optional map to use as a cache of work item id (Long) or work package guid (String) to Insertion artifact.
+ */
+ @Override
+ public void setIdToWorkPackageCache(Map<String, ArtifactToken> guidToWorkPackage) {
+ this.guidToWorkPackage = guidToWorkPackage;
}
@Override
@@ -35,10 +51,32 @@ public abstract class AbstractRelatedWorkPackageColumn implements IAtsColumn {
String result = "";
try {
if (atsObject instanceof IAtsWorkItem) {
- IAtsWorkPackage workPkg =
- earnedValueServiceProvider.getEarnedValueService().getWorkPackage((IAtsWorkItem) atsObject);
- if (workPkg != null) {
- result = getColumnValue(workPkg);
+ String workPackageId =
+ earnedValueServiceProvider.getEarnedValueService().getWorkPackageId((IAtsWorkItem) atsObject);
+ if (workPackageId != null) {
+ if (guidToWorkPackage != null) {
+ if (Strings.isValid(workPackageId)) {
+ ArtifactToken wpArt = guidToWorkPackage.get(workPackageId);
+ result = getColumnValue(wpArt);
+ if (Strings.isInValid(result)) {
+ IAtsWorkPackage workPkg =
+ earnedValueServiceProvider.getEarnedValueService().getWorkPackage(wpArt);
+ if (workPkg != null) {
+ result = getColumnValue(workPkg);
+ }
+ }
+ }
+ }
+ if (Strings.isInValid(result)) {
+ IAtsWorkPackage workPkg =
+ earnedValueServiceProvider.getEarnedValueService().getWorkPackage((IAtsWorkItem) atsObject);
+ if (workPkg != null) {
+ result = getColumnValue(workPkg);
+ if (guidToWorkPackage != null) {
+ guidToWorkPackage.put(workPackageId, workPkg.getStoreObject());
+ }
+ }
+ }
}
}
} catch (OseeCoreException ex) {
@@ -47,6 +85,8 @@ public abstract class AbstractRelatedWorkPackageColumn implements IAtsColumn {
return result;
}
- protected abstract String getColumnValue(IAtsWorkPackage workPkg) throws OseeCoreException;
+ protected abstract String getColumnValue(ArtifactToken wpArt);
+
+ protected abstract String getColumnValue(IAtsWorkPackage workPkg);
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java
index 5991a2a46b..e3cd52eeef 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/AtsColumnService.java
@@ -132,15 +132,15 @@ public class AtsColumnService implements IAtsColumnService {
} else if (id.equals(AtsColumnId.Priority.getId())) {
column = new AtsAttributeValueColumnHandler(AtsColumnToken.PriorityColumn, services);
} else if (id.equals(AtsColumnId.WorkPackageName.getId())) {
- column = new WorkPackageNameColumn(services.getEarnedValueServiceProvider());
+ column = new WorkPackageNameColumn(services.getEarnedValueServiceProvider(), services);
} else if (id.equals(AtsColumnId.WorkPackageId.getId())) {
- column = new WorkPackageIdColumn(services.getEarnedValueServiceProvider());
+ column = new WorkPackageIdColumn(services.getEarnedValueServiceProvider(), services);
} else if (id.equals(AtsColumnId.WorkPackageType.getId())) {
- column = new WorkPackageTypeColumn(services.getEarnedValueServiceProvider());
+ column = new WorkPackageTypeColumn(services.getEarnedValueServiceProvider(), services);
} else if (id.equals(AtsColumnId.WorkPackageProgram.getId())) {
- column = new WorkPackageProgramColumn(services.getEarnedValueServiceProvider());
+ column = new WorkPackageProgramColumn(services.getEarnedValueServiceProvider(), services);
} else if (id.equals(AtsColumnId.WorkPackageGuid.getId())) {
- column = new WorkPackageGuidColumn(services.getEarnedValueServiceProvider());
+ column = new WorkPackageGuidColumn(services.getEarnedValueServiceProvider(), services);
} else if (id.equals(AtsColumnId.State.getId())) {
column = new StateColumn(services);
} else if (id.equals(AtsColumnId.Uuid.getId())) {
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageColumn.java
index f3da1eb132..7c0e23d5fc 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageColumn.java
@@ -10,11 +10,14 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.internal.column.ev;
+import java.util.Map;
import org.eclipse.osee.ats.api.IAtsObject;
import org.eclipse.osee.ats.api.IAtsWorkItem;
+import org.eclipse.osee.ats.api.column.IWorkPackageColumn;
import org.eclipse.osee.ats.api.ev.IAtsEarnedValueServiceProvider;
import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
import org.eclipse.osee.ats.core.column.IWorkPackageUtility;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.util.Strings;
@@ -23,9 +26,10 @@ import org.eclipse.osee.framework.jdk.core.util.Strings;
*
* @author Donald G. Dunne
*/
-public class WorkPackageColumn implements IWorkPackageUtility {
+public class WorkPackageColumn implements IWorkPackageUtility, IWorkPackageColumn {
private final IAtsEarnedValueServiceProvider earnedValueServiceProvider;
+ private Map<String, ArtifactToken> guidToWorkPackage;
public WorkPackageColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) {
this.earnedValueServiceProvider = earnedValueServiceProvider;
@@ -36,13 +40,35 @@ public class WorkPackageColumn implements IWorkPackageUtility {
return earnedValueServiceProvider.getEarnedValueService().getWorkPackageId((IAtsWorkItem) object);
}
+ /**
+ * Set optional map to use as a cache of work item id (Long) or work package guid (String) to Insertion artifact.
+ */
+ @Override
+ public void setIdToWorkPackageCache(Map<String, ArtifactToken> guidToWorkPackage) {
+ this.guidToWorkPackage = guidToWorkPackage;
+ }
+
@Override
public String getColumnText(IAtsObject atsObject) {
String result = "";
try {
IAtsWorkPackage workPackage = null;
if (atsObject instanceof IAtsWorkItem) {
- workPackage = earnedValueServiceProvider.getEarnedValueService().getWorkPackage((IAtsWorkItem) atsObject);
+ String workPackageId =
+ earnedValueServiceProvider.getEarnedValueService().getWorkPackageId((IAtsWorkItem) atsObject);
+ if (guidToWorkPackage != null) {
+ if (Strings.isValid(workPackageId)) {
+ ArtifactToken wpArt = guidToWorkPackage.get(workPackageId);
+ workPackage = earnedValueServiceProvider.getEarnedValueService().getWorkPackage(wpArt);
+ }
+ }
+ if (workPackage == null) {
+ workPackage =
+ earnedValueServiceProvider.getEarnedValueService().getWorkPackage((IAtsWorkItem) atsObject);
+ if (workPackage != null && guidToWorkPackage != null) {
+ guidToWorkPackage.put(workPackageId, workPackage.getStoreObject());
+ }
+ }
if (workPackage != null) {
result = getText(workPackage);
}
@@ -71,6 +97,17 @@ public class WorkPackageColumn implements IWorkPackageUtility {
@Override
public IAtsWorkPackage getWorkPackage(IAtsObject atsObject) throws OseeCoreException {
IAtsWorkPackage workPackage = null;
+ String workPackageId =
+ earnedValueServiceProvider.getEarnedValueService().getWorkPackageId((IAtsWorkItem) atsObject);
+ if (guidToWorkPackage != null) {
+ if (Strings.isValid(workPackageId)) {
+ ArtifactToken wpArt = guidToWorkPackage.get(workPackageId);
+ workPackage = earnedValueServiceProvider.getEarnedValueService().getWorkPackage(wpArt);
+ if (workPackage != null) {
+ return workPackage;
+ }
+ }
+ }
// Children work items inherit the work packages of their parent team workflow
if (atsObject instanceof IAtsWorkItem) {
workPackage = earnedValueServiceProvider.getEarnedValueService().getWorkPackage((IAtsWorkItem) atsObject);
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidColumn.java
index 351c3f344c..06e8da4cea 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageGuidColumn.java
@@ -10,16 +10,18 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.internal.column.ev;
+import org.eclipse.osee.ats.api.IAtsServices;
import org.eclipse.osee.ats.api.ev.IAtsEarnedValueServiceProvider;
import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
/**
* @author Donald G. Dunne
*/
public class WorkPackageGuidColumn extends AbstractRelatedWorkPackageColumn {
- public WorkPackageGuidColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) {
- super(earnedValueServiceProvider);
+ public WorkPackageGuidColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider, IAtsServices services) {
+ super(earnedValueServiceProvider, services);
}
@Override
@@ -27,4 +29,9 @@ public class WorkPackageGuidColumn extends AbstractRelatedWorkPackageColumn {
return workPkg.getGuid();
}
+ @Override
+ protected String getColumnValue(ArtifactToken wpArt) {
+ return wpArt.getGuid();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdColumn.java
index b58195e085..0e070dc874 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageIdColumn.java
@@ -10,8 +10,11 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.internal.column.ev;
+import org.eclipse.osee.ats.api.IAtsServices;
+import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.ev.IAtsEarnedValueServiceProvider;
import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
/**
@@ -19,8 +22,8 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
*/
public class WorkPackageIdColumn extends AbstractRelatedWorkPackageColumn {
- public WorkPackageIdColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) {
- super(earnedValueServiceProvider);
+ public WorkPackageIdColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider, IAtsServices services) {
+ super(earnedValueServiceProvider, services);
}
@Override
@@ -28,4 +31,12 @@ public class WorkPackageIdColumn extends AbstractRelatedWorkPackageColumn {
return workPkg.getWorkPackageId();
}
+ @Override
+ protected String getColumnValue(ArtifactToken wpArt) {
+ if (services == null) {
+ return "";
+ }
+ return services.getAttributeResolver().getSoleAttributeValue(wpArt, AtsAttributeTypes.WorkPackageId, "");
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameColumn.java
index be62d040d9..f5b10ade6e 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageNameColumn.java
@@ -10,16 +10,18 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.internal.column.ev;
+import org.eclipse.osee.ats.api.IAtsServices;
import org.eclipse.osee.ats.api.ev.IAtsEarnedValueServiceProvider;
import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
/**
* @author Donald G. Dunne
*/
public class WorkPackageNameColumn extends AbstractRelatedWorkPackageColumn {
- public WorkPackageNameColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) {
- super(earnedValueServiceProvider);
+ public WorkPackageNameColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider, IAtsServices services) {
+ super(earnedValueServiceProvider, services);
}
@Override
@@ -27,4 +29,9 @@ public class WorkPackageNameColumn extends AbstractRelatedWorkPackageColumn {
return workPkg.getName();
}
+ @Override
+ protected String getColumnValue(ArtifactToken wpArt) {
+ return wpArt.getName();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramColumn.java
index 99eb801986..82f22c2e33 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageProgramColumn.java
@@ -10,8 +10,11 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.internal.column.ev;
+import org.eclipse.osee.ats.api.IAtsServices;
+import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
import org.eclipse.osee.ats.api.ev.IAtsEarnedValueServiceProvider;
import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
/**
@@ -19,8 +22,8 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
*/
public class WorkPackageProgramColumn extends AbstractRelatedWorkPackageColumn {
- public WorkPackageProgramColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) {
- super(earnedValueServiceProvider);
+ public WorkPackageProgramColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider, IAtsServices services) {
+ super(earnedValueServiceProvider, services);
}
@Override
@@ -32,4 +35,12 @@ public class WorkPackageProgramColumn extends AbstractRelatedWorkPackageColumn {
}
}
+ @Override
+ protected String getColumnValue(ArtifactToken wpArt) {
+ if (services == null) {
+ return "";
+ }
+ return services.getAttributeResolver().getSoleAttributeValue(wpArt, AtsAttributeTypes.WorkPackageProgram, "");
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeColumn.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeColumn.java
index 3e2a9c2c59..2ac58dc1fe 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeColumn.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/internal/column/ev/WorkPackageTypeColumn.java
@@ -10,17 +10,22 @@
*******************************************************************************/
package org.eclipse.osee.ats.core.internal.column.ev;
+import org.eclipse.osee.ats.api.IAtsServices;
+import org.eclipse.osee.ats.api.data.AtsAttributeTypes;
+import org.eclipse.osee.ats.api.ev.AtsWorkPackageType;
import org.eclipse.osee.ats.api.ev.IAtsEarnedValueServiceProvider;
import org.eclipse.osee.ats.api.ev.IAtsWorkPackage;
+import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.Strings;
/**
* @author Donald G. Dunne
*/
public class WorkPackageTypeColumn extends AbstractRelatedWorkPackageColumn {
- public WorkPackageTypeColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider) {
- super(earnedValueServiceProvider);
+ public WorkPackageTypeColumn(IAtsEarnedValueServiceProvider earnedValueServiceProvider, IAtsServices services) {
+ super(earnedValueServiceProvider, services);
}
@Override
@@ -32,4 +37,23 @@ public class WorkPackageTypeColumn extends AbstractRelatedWorkPackageColumn {
}
}
+ @Override
+ protected String getColumnValue(ArtifactToken wpArt) {
+ if (services == null) {
+ return "";
+ }
+ String value =
+ services.getAttributeResolver().getSoleAttributeValue(wpArt, AtsAttributeTypes.WorkPackageType, "");
+ AtsWorkPackageType type = AtsWorkPackageType.None;
+ if (Strings.isValid(value)) {
+ try {
+ type = AtsWorkPackageType.valueOf(value);
+ return type.name();
+ } catch (Exception ex) {
+ // do nothing
+ }
+ }
+ return type.name();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/program/AtsProgramService.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/program/AtsProgramService.java
index 3bca0b4cc1..c50eba8cd2 100644
--- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/program/AtsProgramService.java
+++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/program/AtsProgramService.java
@@ -391,7 +391,7 @@ public class AtsProgramService implements IAtsProgramService {
useWorkItem = ((IAtsTeamWorkflow) useWorkItem).getParentAction();
}
if (useWorkItem != null && useWorkItem instanceof IAtsAction) {
- for (IAtsTeamWorkflow team : services.getWorkItemService().getTeams((IAtsAction) useWorkItem)) {
+ for (IAtsTeamWorkflow team : services.getWorkItemService().getTeams(useWorkItem)) {
if (workTypeTeamDefs.contains(team.getTeamDefinition())) {
teamArts.add(team);
}
diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/io/xml/AbstractSheetWriter.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/io/xml/AbstractSheetWriter.java
index 2c2940e94c..adff7f9efe 100644
--- a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/io/xml/AbstractSheetWriter.java
+++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/util/io/xml/AbstractSheetWriter.java
@@ -43,6 +43,12 @@ public abstract class AbstractSheetWriter implements ISheetWriter {
@Override
public void writeRow(Object... row) throws IOException {
+ if (row[0] instanceof Collection<?>) {
+ Collection<?> values = (Collection<?>) row[0];
+ for (Object obj : values) {
+ writeCell(obj);
+ }
+ }
for (int i = 0; i < row.length; i++) {
writeCell(row[i]);
}

Back to the top