Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormegumi.telles2015-09-30 16:59:57 +0000
committerRyan D. Brooks2015-09-30 16:59:57 +0000
commit165caac839e71bfdb37a886532f1e2e5de2edf39 (patch)
tree769be3d76224d454cdd8712b3e8055dcf399e22e
parent3b3ee8cf3dade0278f326984a96345dbe1212e17 (diff)
downloadorg.eclipse.osee-165caac839e71bfdb37a886532f1e2e5de2edf39.tar.gz
org.eclipse.osee-165caac839e71bfdb37a886532f1e2e5de2edf39.tar.xz
org.eclipse.osee-165caac839e71bfdb37a886532f1e2e5de2edf39.zip
bug[ats_ATS227491]: Allow deleted on dest arts with mods show in change report
- Added an change ignore type to change items - Compute net changes now checks and sets the ignore cases for change items - ChangeDataLoader and CommitBranchDatabaseCallable filter the change list based on allowable ignore cases - Artifact image shows a red 'x' when arts, attrs, relations are considered deleted on destination in the change report - Change provider displays Deleted on Destination on appropriate arts, attrs, rels in change report. Does not change the actual mod type only a UI representation - View word change report will pop-up an informational letting the user know this artifact has been deleted on the destination Change-Id: Iad075ec2799294be4f457b7be7c54b7b44ffb302
-rw-r--r--plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtilTest.java32
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeIgnoreType.java64
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItem.java13
-rw-r--r--plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtil.java65
-rw-r--r--plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/ModificationType.java4
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/revision/ChangeDataLoader.java28
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java52
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java1
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/ViewWordChangeReportHandler.java9
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactGuis.java62
-rw-r--r--plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeLabelProvider.java9
-rw-r--r--plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeTest.java15
-rw-r--r--plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/CommitBranchDatabaseCallable.java36
-rw-r--r--plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/AddArtifactChangeDataCallable.java2
-rw-r--r--plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeCallable.java22
15 files changed, 334 insertions, 80 deletions
diff --git a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtilTest.java b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtilTest.java
index 21956ec021..c4e502de98 100644
--- a/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtilTest.java
+++ b/plugins/org.eclipse.osee.framework.core.model.test/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtilTest.java
@@ -27,7 +27,7 @@ import org.junit.Test;
/**
* Test Case for {@link ChangeItemUtil}
- *
+ *
* @author Roberto E. Escobar
*/
public class ChangeItemUtilTest {
@@ -109,19 +109,22 @@ public class ChangeItemUtilTest {
ChangeVersion deletedCurrent = ChangeTestUtility.createChange(3333L, ModificationType.DELETED);
ChangeItem item = ChangeTestUtility.createItem(200, null, isNew, deletedCurrent, null, null);
- assertTrue(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertFalse(item.getIgnoreType().isNone());
ChangeVersion current = ChangeTestUtility.createChange(3333L, ModificationType.INTRODUCED);
ChangeVersion destination = ChangeTestUtility.createChange(3333L, ModificationType.INTRODUCED);
item = ChangeTestUtility.createItem(200, null, null, current, destination, null);
- assertTrue(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertFalse(item.getIgnoreType().isNone());
ChangeVersion dest;
current = ChangeTestUtility.createChange(2222L, ModificationType.DELETED);
dest = null;
item = ChangeTestUtility.createItem(200, null, null, current, dest, null);
- assertTrue(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertFalse(item.getIgnoreType().isNone());
// Test resurrected Cases, Deleted on Destination but resurrected (Introduced or New) on Current
ChangeVersion baseline = ChangeTestUtility.createChange(6234L, ModificationType.DELETED);
@@ -130,38 +133,45 @@ public class ChangeItemUtilTest {
destination = ChangeTestUtility.createChange(4444L, ModificationType.DELETED);
item = ChangeTestUtility.createItem(200, baseline, null, current, destination, null);
- assertFalse(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertTrue(item.getIgnoreType().isNone());
current = ChangeTestUtility.createChange(3333L, ModificationType.NEW);
item = ChangeTestUtility.createItem(200, baseline, null, current, destination, null);
- assertFalse(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertTrue(item.getIgnoreType().isNone());
// Not a resurrection case, should be IgnoreCase
current = ChangeTestUtility.createChange(3333L, ModificationType.MODIFIED);
baseline = ChangeTestUtility.createChange(6234L, ModificationType.MODIFIED);
item = ChangeTestUtility.createItem(200, baseline, null, current, destination, null);
- assertTrue(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertFalse(item.getIgnoreType().isNone());
isNew = ChangeTestUtility.createChange(2222L, ModificationType.NEW);
destination = ChangeTestUtility.createChange(3333L, ModificationType.NEW);
item = ChangeTestUtility.createItem(200, null, null, isNew, destination, null);
- assertFalse(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertTrue(item.getIgnoreType().isNone());
//destination Equal Or Newer Than Current
isNew = ChangeTestUtility.createChange(2222L, ModificationType.NEW);
ChangeVersion isIntroduced = ChangeTestUtility.createChange(2222L, ModificationType.NEW);
dest = ChangeTestUtility.createChange(1111L, ModificationType.NEW);
item = ChangeTestUtility.createItem(200, null, null, isNew, dest, null);
- assertFalse(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertTrue(item.getIgnoreType().isNone());
item = ChangeTestUtility.createItem(200, null, null, isIntroduced, dest, null);
- assertFalse(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertTrue(item.getIgnoreType().isNone());
ChangeVersion isNotNew = ChangeTestUtility.createChange(2222L, ModificationType.MODIFIED);
item = ChangeTestUtility.createItem(200, null, null, isNotNew, dest, null);
- assertFalse(ChangeItemUtil.isIgnoreCase(item));
+ ChangeItemUtil.checkAndSetIgnoreCase(item);
+ assertTrue(item.getIgnoreType().isNone());
}
@Test
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeIgnoreType.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeIgnoreType.java
new file mode 100644
index 0000000000..b81269c998
--- /dev/null
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeIgnoreType.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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.framework.core.model.change;
+
+/**
+ * @author Megumi Telles
+ */
+public enum ChangeIgnoreType {
+
+ CREATED_AND_DELETED,
+ ALREADY_ON_DESTINATION,
+ DELETED_AND_DNE_ON_DESTINATION,
+ DELETED_ON_DESTINATION,
+ REPLACED_WITH_VERSION,
+ RESURRECTED,
+ DELETED_ON_DEST_AND_NOT_RESURRECTED,
+ REPLACED_WITH_VERSION_AND_NOT_RESURRECTED,
+ NONE;
+
+ public boolean isCreatedAndDeleted() {
+ return this == CREATED_AND_DELETED;
+ }
+
+ public boolean isAlreadyOnDestination() {
+ return this == ALREADY_ON_DESTINATION;
+ }
+
+ public boolean isDeletedAndDneOnDest() {
+ return this == DELETED_AND_DNE_ON_DESTINATION;
+ }
+
+ public boolean isDeletedOnDestination() {
+ return this == DELETED_ON_DESTINATION;
+ }
+
+ public boolean isReplacedWithVersion() {
+ return this == REPLACED_WITH_VERSION;
+ }
+
+ public boolean isResurrected() {
+ return this == RESURRECTED;
+ }
+
+ public boolean isDeletedOnDestAndNotResurrected() {
+ return this == DELETED_ON_DEST_AND_NOT_RESURRECTED;
+ }
+
+ public boolean isReplacedWithVerAndNotResurrected() {
+ return this == REPLACED_WITH_VERSION_AND_NOT_RESURRECTED;
+ }
+
+ public boolean isNone() {
+ return this == NONE;
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItem.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItem.java
index ebb2ff46f6..1ce905d062 100644
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItem.java
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItem.java
@@ -15,6 +15,7 @@ package org.eclipse.osee.framework.core.model.change;
*/
public class ChangeItem implements Comparable<ChangeItem> {
+ private ChangeIgnoreType ignoreType = ChangeIgnoreType.NONE;
private ChangeType changeType = ChangeType.UNKNOWN_CHANGE;
private int artId = -1;
private int itemId = -1;
@@ -34,6 +35,14 @@ public class ChangeItem implements Comparable<ChangeItem> {
super();
}
+ public ChangeIgnoreType getIgnoreType() {
+ return ignoreType;
+ }
+
+ public void setIgnoreType(ChangeIgnoreType type) {
+ this.ignoreType = type;
+ }
+
public void setSynthetic(boolean synthetic) {
this.synthetic = synthetic;
}
@@ -125,9 +134,9 @@ public class ChangeItem implements Comparable<ChangeItem> {
@Override
public String toString() {
return String.format(
- "ChangeItem - itemId:[%s] artId:%s typeId:%s base:%s first:%s current:%s destination:%s net:%s synthetic:%s",
+ "ChangeItem - itemId:[%s] artId:%s typeId:%s base:%s first:%s current:%s destination:%s net:%s synthetic:%s ignoreType:%s",
itemId, getArtId(), getItemTypeId(), getBaselineVersion(), getFirstNonCurrentChange(), getCurrentVersion(),
- getDestinationVersion(), getNetChange(), isSynthetic());
+ getDestinationVersion(), getNetChange(), isSynthetic(), getItemTypeId());
}
@Override
diff --git a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtil.java b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtil.java
index 325aed198e..14864439e0 100644
--- a/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtil.java
+++ b/plugins/org.eclipse.osee.framework.core.model/src/org/eclipse/osee/framework/core/model/change/ChangeItemUtil.java
@@ -165,13 +165,54 @@ public final class ChangeItemUtil {
return result;
}
- public static boolean isIgnoreCase(ChangeItem changeItem) {
- return //
- wasCreatedAndDeleted(changeItem) || //
- isAlreadyOnDestination(changeItem) || //
- isDeletedAndDoesNotExistInDestination(changeItem) || //
- (hasBeenDeletedInDestination(changeItem) && !isResurrected(changeItem)) || //
- (hasBeenReplacedWithVersion(changeItem) && !isResurrected(changeItem));
+ public static void checkAndSetIgnoreCase(ChangeItem changeItem) {
+ createdAndDeleted(changeItem);
+ wasAlreadyOnDestination(changeItem);
+ deletedAndDoesNotExistInDestination(changeItem);
+ deletedOnDestAndNotResurrected(changeItem);
+ replacedWithVerAndNotRessurected(changeItem);
+ }
+
+ public static void wasAlreadyOnDestination(ChangeItem changeItem) {
+ if (isAlreadyOnDestination(changeItem)) {
+ changeItem.setIgnoreType(ChangeIgnoreType.ALREADY_ON_DESTINATION);
+ }
+ }
+
+ public static void createdAndDeleted(ChangeItem changeItem) {
+ if (wasCreatedAndDeleted(changeItem)) {
+ changeItem.setIgnoreType(ChangeIgnoreType.CREATED_AND_DELETED);
+ }
+ }
+
+ public static void deletedAndDoesNotExistInDestination(ChangeItem changeItem) {
+ if (!changeItem.getDestinationVersion().isValid() && isDeleted(changeItem.getCurrentVersion())) {
+ changeItem.setIgnoreType(ChangeIgnoreType.DELETED_AND_DNE_ON_DESTINATION);
+ }
+ }
+
+ public static void beenDeletedInDestination(ChangeItem changeItem) {
+ if (hasBeenDeletedInDestination(changeItem)) {
+ changeItem.setIgnoreType(ChangeIgnoreType.DELETED_ON_DESTINATION);
+ }
+ }
+
+ public static void deletedOnDestAndNotResurrected(ChangeItem changeItem) {
+ if (hasBeenDeletedInDestination(changeItem) && !isResurrected(changeItem)) {
+ changeItem.setIgnoreType(ChangeIgnoreType.DELETED_ON_DEST_AND_NOT_RESURRECTED);
+ }
+ }
+
+ public static void replacedWithVerAndNotRessurected(ChangeItem changeItem) {
+ if (hasBeenReplacedWithVersion(changeItem) && !isResurrected(changeItem)) {
+ changeItem.setIgnoreType(ChangeIgnoreType.REPLACED_WITH_VERSION_AND_NOT_RESURRECTED);
+ }
+ }
+
+ public static void resurrected(ChangeItem changeItem) {
+ if (isResurrected(changeItem)) {
+ changeItem.setIgnoreType(ChangeIgnoreType.RESURRECTED);
+ }
}
public static boolean wasCreatedAndDeleted(ChangeItem changeItem) {
@@ -182,13 +223,13 @@ public final class ChangeItemUtil {
return !changeItem.getDestinationVersion().isValid() && isDeleted(changeItem.getCurrentVersion());
}
- public static boolean hasBeenDeletedInDestination(ChangeItem changeItem) {
- return changeItem.getDestinationVersion().isValid() && isDeleted(changeItem.getDestinationVersion());
- }
-
public static boolean isResurrected(ChangeItem changeItem) {
// There's a change corresponding to a Deleted Item, item MUST have been resurrected
- return changeItem.getBaselineVersion().isValid() && isDeleted(changeItem.getBaselineVersion());
+ return (changeItem.getBaselineVersion().isValid() && isDeleted(changeItem.getBaselineVersion()));
+ }
+
+ public static boolean hasBeenDeletedInDestination(ChangeItem changeItem) {
+ return changeItem.getDestinationVersion().isValid() && isDeleted(changeItem.getDestinationVersion());
}
}
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/ModificationType.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/ModificationType.java
index ddba768854..3593509c36 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/ModificationType.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/enums/ModificationType.java
@@ -50,7 +50,9 @@ public enum ModificationType {
//Artifact: Not valid
//Attribute: Valid and can be used to replace the current version of an attribute with another historical version
- REPLACED_WITH_VERSION("Replace_with_version", 8);
+ REPLACED_WITH_VERSION("Replace_with_version", 8),
+
+ DELETED_ON_DESTINATION("Deleted on Destination", 9);
private final static Set<ModificationType> ALL_NOT_HARD_DELETED = new HashSet<>();
private final static Set<ModificationType> ALL_MOD_TYPES = new HashSet<>();
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/revision/ChangeDataLoader.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/revision/ChangeDataLoader.java
index 9835ebde27..4c8e253d05 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/revision/ChangeDataLoader.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/revision/ChangeDataLoader.java
@@ -11,6 +11,7 @@
package org.eclipse.osee.framework.skynet.core.revision;
import static org.eclipse.osee.framework.core.enums.DeletionFlag.INCLUDE_DELETED;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
@@ -22,6 +23,7 @@ import org.eclipse.osee.framework.core.enums.ModificationType;
import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.core.model.TransactionDelta;
import org.eclipse.osee.framework.core.model.TransactionRecord;
+import org.eclipse.osee.framework.core.model.change.ChangeIgnoreType;
import org.eclipse.osee.framework.core.model.change.ChangeItem;
import org.eclipse.osee.framework.core.model.change.ChangeItemUtil;
import org.eclipse.osee.framework.core.model.change.ChangeVersion;
@@ -197,8 +199,7 @@ public class ChangeDataLoader extends AbstractOperation {
switch (item.getChangeType()) {
case ARTIFACT_CHANGE:
- change =
- new ArtifactChange(startTxBranch, itemGammaId, itemId, txDelta, netModType, isHistorical,
+ change = new ArtifactChange(startTxBranch, itemGammaId, itemId, txDelta, netModType, isHistorical,
changeArtifact, artifactDelta);
break;
case ATTRIBUTE_CHANGE:
@@ -224,9 +225,8 @@ public class ChangeDataLoader extends AbstractOperation {
}
}
}
- change =
- new AttributeChange(startTxBranch, itemGammaId, artId, txDelta, netModType, isValue, wasValue, itemId,
- attributeType, netModType, isHistorical, changeArtifact, artifactDelta);
+ change = new AttributeChange(startTxBranch, itemGammaId, artId, txDelta, netModType, isValue, wasValue,
+ itemId, attributeType, netModType, isHistorical, changeArtifact, artifactDelta);
break;
case RELATION_CHANGE:
RelationType relationType = RelationTypeManager.getTypeByGuid(item.getItemTypeId());
@@ -291,9 +291,25 @@ public class ChangeDataLoader extends AbstractOperation {
try {
CompareResults results = proxy.compareTxs(txDelta.getStartTx().getId(), txDelta.getEndTx().getId());
- return results.getChanges();
+ List<ChangeItem> changes = new ArrayList<>();
+ for (ChangeItem item : results.getChanges()) {
+ if (isAllowableChange(item.getIgnoreType())) {
+ changes.add(item);
+ }
+ }
+ return changes;
+
} catch (Exception ex) {
throw JaxRsExceptions.asOseeException(ex);
}
}
+
+ private static boolean isAllowableChange(ChangeIgnoreType ignoreType) {
+ return //
+ ignoreType.isNone() || //
+ ignoreType.isResurrected() || //
+ ignoreType.isDeletedOnDestAndNotResurrected() || //
+ ignoreType.isDeletedOnDestination();
+ }
+
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java
index 4ea1ec1a55..f62a5736da 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/ArtifactImageManager.java
@@ -20,6 +20,8 @@ import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.osee.framework.access.AccessControlManager;
import org.eclipse.osee.framework.core.data.IArtifactType;
import org.eclipse.osee.framework.core.enums.ModificationType;
+import org.eclipse.osee.framework.core.model.change.ChangeIgnoreType;
+import org.eclipse.osee.framework.core.model.change.ChangeItem;
import org.eclipse.osee.framework.jdk.core.type.OseeArgumentException;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.logging.OseeLog;
@@ -117,20 +119,45 @@ public final class ArtifactImageManager {
ModificationType modType = null;
if (change.getItemKind().equals("Artifact")) {
modType = change.getModificationType();
- keyedImage = BaseImage.getBaseImageEnum(change.getArtifactType());
+ if (ChangeImageType.CHANGE_TYPE == changeImageType) {
+ keyedImage = BaseImage.getBaseImageEnum(change.getArtifactType());
+ } else {
+ ChangeItem changeItem = change.getChangeItem();
+ if (changeItem != null && isArtDeletedOnDestination(changeItem.getIgnoreType())) {
+ keyedImage = FrameworkImage.DELETE;
+ modType = ModificationType.DELETED_ON_DESTINATION;
+ } else {
+ keyedImage = BaseImage.getBaseImageEnum(change.getArtifactType());
+ }
+ }
}
if (change.getItemKind().equals("Attribute")) {
+ modType = change.getModificationType();
if (ChangeImageType.CHANGE_TYPE == changeImageType) {
- modType = change.getModificationType();
keyedImage = FrameworkImage.ATTRIBUTE_MOLECULE;
} else {
- modType = change.getModificationType();
- keyedImage = BaseImage.getBaseImageEnum(change.getArtifactType());
+ ChangeItem changeItem = change.getChangeItem();
+ if (changeItem != null && isArtDeletedOnDestination(changeItem.getIgnoreType())) {
+ keyedImage = FrameworkImage.DELETE;
+ modType = ModificationType.DELETED_ON_DESTINATION;
+ } else {
+ keyedImage = BaseImage.getBaseImageEnum(change.getArtifactType());
+ }
}
}
if (change.getItemKind().equals("Relation")) {
- keyedImage = FrameworkImage.RELATION;
modType = change.getModificationType();
+ if (ChangeImageType.CHANGE_TYPE == changeImageType) {
+ keyedImage = FrameworkImage.RELATION;
+ } else {
+ ChangeItem changeItem = change.getChangeItem();
+ if (changeItem != null && isArtDeletedOnDestination(changeItem.getIgnoreType())) {
+ keyedImage = FrameworkImage.DELETE;
+ modType = ModificationType.DELETED_ON_DESTINATION;
+ } else {
+ keyedImage = FrameworkImage.RELATION;
+ }
+ }
}
if (keyedImage != null && modType != null) {
KeyedImage overlay = FrameworkImage.valueOf("OUTGOING_" + modType.toString());
@@ -139,6 +166,10 @@ public final class ArtifactImageManager {
return toReturn;
}
+ private static boolean isArtDeletedOnDestination(ChangeIgnoreType type) {
+ return type.isDeletedOnDestAndNotResurrected() || type.isDeletedOnDestination();
+ }
+
public static Image getImage(IArtifactType artifactType) {
return retrieveImage(artifactType);
}
@@ -167,8 +198,8 @@ public final class ArtifactImageManager {
}
public static Image getImage(Artifact artifact, KeyedImage overlay, Location location) {
- return ImageManager.getImage(ImageManager.setupImageWithOverlay(BaseImage.getBaseImageEnum(artifact), overlay,
- location));
+ return ImageManager.getImage(
+ ImageManager.setupImageWithOverlay(BaseImage.getBaseImageEnum(artifact), overlay, location));
}
public synchronized static String setupImage(KeyedImage imageEnum) {
@@ -248,14 +279,15 @@ public final class ArtifactImageManager {
baseImageEnum = BaseImage.getBaseImageEnum(castedArtifact);
if (AccessControlManager.hasLock(castedArtifact)) {
- KeyedImage overlay =
- AccessControlManager.hasLockAccess(castedArtifact) ? FrameworkImage.LOCKED_WITH_ACCESS : FrameworkImage.LOCKED_NO_ACCESS;
+ KeyedImage overlay = AccessControlManager.hasLockAccess(
+ castedArtifact) ? FrameworkImage.LOCKED_WITH_ACCESS : FrameworkImage.LOCKED_NO_ACCESS;
return ImageManager.setupImageWithOverlay(baseImageEnum, overlay, Location.TOP_LEFT).getImageKey();
}
AttributeAnnotationManager.get(castedArtifact);
if (AttributeAnnotationManager.isAnnotationWarning(castedArtifact)) {
- return ImageManager.setupImageWithOverlay(baseImageEnum, FrameworkImage.WARNING_OVERLAY, Location.BOT_LEFT).getImageKey();
+ return ImageManager.setupImageWithOverlay(baseImageEnum, FrameworkImage.WARNING_OVERLAY,
+ Location.BOT_LEFT).getImageKey();
}
} catch (OseeCoreException ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java
index cade962946..32005a0ae9 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/FrameworkImage.java
@@ -150,6 +150,7 @@ public enum FrameworkImage implements KeyedImage {
MERGE_CAUTION("icon_warning.gif"),
OPEN("open.gif"),
OSEE_32_RUN("osee_32_run.gif"),
+ OUTGOING_DELETED_ON_DESTINATION("OUTGOING_Deleted.gif"),
OUTGOING_ARTIFACT_DELETED("OUTGOING_Deleted.gif"),
OUTGOING_DELETED("OUTGOING_Deleted.gif"),
OUTGOING_INTRODUCED("OUTGOING_New.gif"),
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/ViewWordChangeReportHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/ViewWordChangeReportHandler.java
index 020dd5a0d3..a768bac0a8 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/ViewWordChangeReportHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/commandHandlers/change/ViewWordChangeReportHandler.java
@@ -24,6 +24,7 @@ import org.eclipse.osee.framework.skynet.core.change.Change;
import org.eclipse.osee.framework.skynet.core.revision.ChangeManager;
import org.eclipse.osee.framework.ui.plugin.util.CommandHandler;
import org.eclipse.osee.framework.ui.skynet.commandHandlers.Handlers;
+import org.eclipse.osee.framework.ui.skynet.render.ArtifactGuis;
import org.eclipse.osee.framework.ui.skynet.render.IRenderer;
import org.eclipse.osee.framework.ui.skynet.render.RendererManager;
import org.eclipse.osee.framework.ui.skynet.render.RenderingUtil;
@@ -50,9 +51,11 @@ public class ViewWordChangeReportHandler extends CommandHandler {
}
Collection<ArtifactDelta> artifactDeltas = ChangeManager.getCompareArtifacts(changes);
- String pathPrefix = RenderingUtil.getAssociatedArtifactName(localChanges);
- IRenderer preferredRenderer = new WordTemplateRenderer();
- RendererManager.diffInJobWithPreferedRenderer(artifactDeltas, pathPrefix, preferredRenderer);
+ if (ArtifactGuis.checkDeletedOnParent(artifacts)) {
+ String pathPrefix = RenderingUtil.getAssociatedArtifactName(localChanges);
+ IRenderer preferredRenderer = new WordTemplateRenderer();
+ RendererManager.diffInJobWithPreferedRenderer(artifactDeltas, pathPrefix, preferredRenderer);
+ }
}
return null;
}
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactGuis.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactGuis.java
index a0bd29956c..d4872fdbec 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactGuis.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/render/ArtifactGuis.java
@@ -29,14 +29,69 @@ public final class ArtifactGuis {
private static final String OTHER_EDIT_SQL =
"select txs.mod_type, br.branch_id from osee_attribute att, osee_txs txs, osee_branch br where att.art_id = ? and att.gamma_id = txs.gamma_id and txs.branch_id = br.branch_id and txs.transaction_id <> br.baseline_transaction_id and txs.tx_current <> 0 and br.branch_id <> ? and br.parent_branch_id = ? and br.branch_type = ? AND NOT EXISTS (SELECT 1 FROM osee_txs txs1 WHERE txs1.branch_id = br.branch_id AND txs1.transaction_id = br.baseline_transaction_id AND txs1.gamma_id = txs.gamma_id AND txs1.mod_type = txs.mod_type)";
+ private static final String ART_DELETED_ON_PARENT =
+ "select txs.mod_type, br.branch_id from osee_artifact art, osee_txs txs, osee_branch br where art.art_id = ? and art.gamma_id = txs.gamma_id and txs.branch_id = br.branch_id and br.branch_id = ? and txs.tx_current in (2,3)";
+
private static final String EDIT_MESSAGE =
"%d of the %d artifacts about to be edited have already been modified and/or deleted on the following branches:";
+ private static final String DELETE_EDIT_MESSAGE =
+ "%d of %d artifacts has been deleted on the following parent branch: ";
private static final int BRANCH_NAME_LENGTH = 50;
private ArtifactGuis() {
// this private empty constructor exists to prevent the default constructor from allowing public construction
}
+ public static boolean checkDeletedOnParent(Collection<Artifact> artifacts) {
+ Conditions.checkNotNull(artifacts, "artifacts to check");
+ Conditions.checkExpressionFailOnTrue(artifacts.isEmpty(), "Must have at least one artifact for checking");
+
+ StringBuilder message = new StringBuilder();
+ Set<String> otherBranches = new HashSet<String>();
+ int modifiedCount = artifactsDeleted(artifacts, otherBranches);
+ if (modifiedCount > 0) {
+ message.append(String.format(DELETE_EDIT_MESSAGE, modifiedCount, artifacts.size()));
+ message.append(otherBranches);
+ return confirm("Informational", message.toString());
+ }
+ return true;
+ }
+
+ private static int artifactsDeleted(Collection<Artifact> artifacts, Set<String> otherBranches) {
+ int modifiedCount = 0;
+ for (Artifact artifact : artifacts) {
+ if (addBranchWhereArtifactHasBeenDeleted(artifact, otherBranches)) {
+ modifiedCount++;
+ }
+ }
+ return modifiedCount;
+ }
+
+ private static boolean addBranchWhereArtifactHasBeenDeleted(Artifact artifact, Set<String> otherBranches) {
+ boolean wasModified = false;
+ // Can only be on other branches if it has already been saved
+ if (artifact.isInDb()) {
+
+ JdbcStatement chStmt = ConnectionHandler.getStatement();
+ try {
+ Branch branch = artifact.getFullBranch().getParentBranch();
+ chStmt.runPreparedQuery(ART_DELETED_ON_PARENT, artifact.getArtId(), branch.getUuid());
+
+ while (chStmt.next()) {
+ long modifiedOnBranchId = chStmt.getLong("branch_id");
+ StringBuilder branches = new StringBuilder();
+ branches.append("\n\t");
+ branches.append(BranchManager.getBranch(modifiedOnBranchId).getShortName(BRANCH_NAME_LENGTH));
+ otherBranches.add(branches.toString());
+ wasModified = true;
+ }
+ } finally {
+ chStmt.close();
+ }
+ }
+ return wasModified;
+ }
+
public static boolean checkOtherEdit(Collection<Artifact> artifacts) throws OseeCoreException {
Conditions.checkNotNull(artifacts, "artifacts to check");
Conditions.checkExpressionFailOnTrue(artifacts.isEmpty(), "Must have at least one artifact for checking");
@@ -47,7 +102,7 @@ public final class ArtifactGuis {
if (modifiedCount > 0) {
message.append(String.format(EDIT_MESSAGE, modifiedCount, artifacts.size()));
message.append(otherBranches);
- return confirmEdit(message.toString());
+ return confirm("Confirm Edit", message.toString());
}
return true;
}
@@ -62,12 +117,12 @@ public final class ArtifactGuis {
return modifiedCount;
}
- private static boolean confirmEdit(final String message) {
+ private static boolean confirm(final String title, final String message) {
final MutableBoolean editAllowed = new MutableBoolean(false);
Displays.pendInDisplayThread(new Runnable() {
@Override
public void run() {
- editAllowed.setValue(MessageDialog.openConfirm(Displays.getActiveShell(), "Confirm Edit", message));
+ editAllowed.setValue(MessageDialog.openConfirm(Displays.getActiveShell(), title, message));
}
});
return editAllowed.getValue();
@@ -102,4 +157,5 @@ public final class ArtifactGuis {
}
return wasModified;
}
+
} \ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeLabelProvider.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeLabelProvider.java
index 844426d14f..9cee2f61ce 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeLabelProvider.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/XChangeLabelProvider.java
@@ -18,6 +18,8 @@ import org.eclipse.nebula.widgets.xviewer.XViewerColumn;
import org.eclipse.nebula.widgets.xviewer.XViewerLabelProvider;
import org.eclipse.nebula.widgets.xviewer.XViewerValueColumn;
import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
+import org.eclipse.osee.framework.core.enums.ModificationType;
+import org.eclipse.osee.framework.core.model.change.ChangeItem;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
import org.eclipse.osee.framework.skynet.core.change.Change;
@@ -63,7 +65,12 @@ public class XChangeLabelProvider extends XViewerLabelProvider {
if (change instanceof ErrorChange) {
return "";
} else if (cCol.equals(ChangeXViewerFactory.Change_Type)) {
- return change.getModificationType().getDisplayName();
+ ChangeItem changeItem = change.getChangeItem();
+ if (changeItem != null && changeItem.getIgnoreType().isDeletedOnDestAndNotResurrected()) {
+ return ModificationType.DELETED_ON_DESTINATION.getDisplayName();
+ } else {
+ return change.getModificationType().getDisplayName();
+ }
} else if (cCol.equals(ChangeXViewerFactory.Item_Kind)) {
return change.getItemKind();
} else if (cCol.equals(ChangeXViewerFactory.Item_Type)) {
diff --git a/plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeTest.java b/plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeTest.java
index 6d8ccbcac9..1e764ae574 100644
--- a/plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeTest.java
+++ b/plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeTest.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import org.eclipse.osee.framework.core.enums.ModificationType;
+import org.eclipse.osee.framework.core.model.change.ChangeIgnoreType;
import org.eclipse.osee.framework.core.model.change.ChangeItem;
import org.eclipse.osee.framework.core.model.change.ChangeVersion;
import org.eclipse.osee.framework.jdk.core.type.OseeStateException;
@@ -29,7 +30,7 @@ import org.junit.Test;
/**
* Test Case for {@link ComputeNetChangeCallable}
- *
+ *
* @author Roberto E. Escobar
*/
public class ComputeNetChangeTest {
@@ -39,8 +40,8 @@ public class ComputeNetChangeTest {
// New Or Introduced
data.add(createTest(1, entry(3L, NEW), entry(4L, NEW), entry(5L, MODIFIED), null, entry(5L, NEW), false));
- data.add(createTest(2, entry(3L, NEW), entry(6L, INTRODUCED), entry(7L, MODIFIED), null, entry(7L, INTRODUCED),
- false));
+ data.add(
+ createTest(2, entry(3L, NEW), entry(6L, INTRODUCED), entry(7L, MODIFIED), null, entry(7L, INTRODUCED), false));
data.add(createTest(3, entry(3L, NEW), null, entry(7693330L, INTRODUCED), entry(7693330L, NEW),
entry(7693330L, INTRODUCED), false));
@@ -110,7 +111,9 @@ public class ComputeNetChangeTest {
TestData testData = data.get(index);
String message = String.format("Test: %s", index + 1);
if (testData.isRemoved()) {
- Assert.assertFalse(message, items.contains(testData.getItem()));
+ if (testData.getIgnoreType().isNone()) {
+ Assert.assertFalse(message, items.contains(testData.getItem()));
+ }
} else {
Assert.assertTrue(message, items.contains(testData.getItem()));
ChangeTestUtility.checkChange(message, testData.getExpectedNet(), testData.getItem().getNetChange());
@@ -166,5 +169,9 @@ public class ComputeNetChangeTest {
public boolean isRemoved() {
return isRemoved;
}
+
+ public ChangeIgnoreType getIgnoreType() {
+ return item.getIgnoreType();
+ }
}
}
diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/CommitBranchDatabaseCallable.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/CommitBranchDatabaseCallable.java
index ba12c977c7..32e197e56c 100644
--- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/CommitBranchDatabaseCallable.java
+++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/CommitBranchDatabaseCallable.java
@@ -10,9 +10,11 @@
*******************************************************************************/
package org.eclipse.osee.orcs.db.internal.callable;
+import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import org.eclipse.osee.executor.admin.CancellableCallable;
+import org.eclipse.osee.framework.core.model.change.ChangeIgnoreType;
import org.eclipse.osee.framework.core.model.change.ChangeItem;
import org.eclipse.osee.jdbc.JdbcClient;
import org.eclipse.osee.logger.Log;
@@ -69,29 +71,37 @@ public class CommitBranchDatabaseCallable extends AbstractDatastoreCallable<Inte
mergeTxId = getJdbcClient().runPreparedQueryFetchObject(-1, SELECT_MERGE_BRANCH_HEAD_TX, mergeBranchId);
}
- Callable<List<ChangeItem>> loadChanges =
- new LoadDeltasBetweenBranches(getLogger(), getSession(), getJdbcClient(), joinFactory,
- sourceHead.getBranchId(), destinationHead.getBranchId(), destinationHead.getGuid(), mergeBranchId,
- mergeTxId);
+ Callable<List<ChangeItem>> loadChanges = new LoadDeltasBetweenBranches(getLogger(), getSession(), getJdbcClient(),
+ joinFactory, sourceHead.getBranchId(), destinationHead.getBranchId(), destinationHead.getGuid(), mergeBranchId,
+ mergeTxId);
List<ChangeItem> changes = callAndCheckForCancel(loadChanges);
- changes.addAll(missingChangeItemFactory.createMissingChanges(this, getSession(), changes, sourceHead,
- destinationHead));
+ changes.addAll(
+ missingChangeItemFactory.createMissingChanges(this, getSession(), changes, sourceHead, destinationHead));
Callable<List<ChangeItem>> computeChanges = new ComputeNetChangeCallable(changes);
- return callAndCheckForCancel(computeChanges);
+
+ List<ChangeItem> computedChanges = new ArrayList<>();
+ for (ChangeItem item : callAndCheckForCancel(computeChanges)) {
+ if (isAllowableChange(item.getIgnoreType())) {
+ computedChanges.add(item);
+ }
+ }
+ return computedChanges;
+ }
+
+ private boolean isAllowableChange(ChangeIgnoreType type) {
+ return (type.isNone() || type.isResurrected());
}
@Override
public Integer call() throws Exception {
- Long mergeBranchUuid =
- getJdbcClient().runPreparedQueryFetchObject(-1L, SELECT_MERGE_BRANCH_UUID, source.getGuid(),
- destination.getGuid());
+ Long mergeBranchUuid = getJdbcClient().runPreparedQueryFetchObject(-1L, SELECT_MERGE_BRANCH_UUID,
+ source.getGuid(), destination.getGuid());
List<ChangeItem> changes = callComputeChanges(mergeBranchUuid);
- CancellableCallable<Integer> commitCallable =
- new CommitBranchDatabaseTxCallable(getLogger(), getSession(), getJdbcClient(), joinFactory, idManager,
- getUserArtId(), source, destination, mergeBranchUuid, changes);
+ CancellableCallable<Integer> commitCallable = new CommitBranchDatabaseTxCallable(getLogger(), getSession(),
+ getJdbcClient(), joinFactory, idManager, getUserArtId(), source, destination, mergeBranchUuid, changes);
Integer newTx = callAndCheckForCancel(commitCallable);
return newTx;
diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/AddArtifactChangeDataCallable.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/AddArtifactChangeDataCallable.java
index 6d8b7c5540..244bc51439 100644
--- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/AddArtifactChangeDataCallable.java
+++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/AddArtifactChangeDataCallable.java
@@ -79,7 +79,7 @@ public class AddArtifactChangeDataCallable extends CancellableCallable<List<Chan
ChangeItemUtil.copy(attribute.getNetChange(), artifact.getNetChange());
artifact.getNetChange().setModType(ModificationType.MODIFIED);
}
-
+ ChangeItemUtil.checkAndSetIgnoreCase(artifact);
} catch (Exception ex) {
ex.printStackTrace();
}
diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeCallable.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeCallable.java
index 0090adc0c3..f94708fb59 100644
--- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeCallable.java
+++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/change/ComputeNetChangeCallable.java
@@ -35,21 +35,17 @@ public class ComputeNetChangeCallable extends CancellableCallable<List<ChangeIte
while (iterator.hasNext()) {
checkForCancelled();
ChangeItem change = iterator.next();
- if (ChangeItemUtil.isIgnoreCase(change)) {
- iterator.remove();
+ ChangeItemUtil.checkAndSetIgnoreCase(change);
+ if (!ChangeItemUtil.isModType(change.getNetChange(), ModificationType.MERGED)) {
+ ModificationType netModType = getNetModType(change);
+ if (netModType == null) {
+ throw new OseeStateException("Net Mod Type was null");
+ }
+ change.getNetChange().copy(change.getCurrentVersion());
+ change.getNetChange().setModType(netModType);
} else {
-
- if (!ChangeItemUtil.isModType(change.getNetChange(), ModificationType.MERGED)) {
- ModificationType netModType = getNetModType(change);
- if (netModType == null) {
- throw new OseeStateException("Net Mod Type was null");
- }
+ if (ChangeItemUtil.isDeleted(change.getCurrentVersion())) {
change.getNetChange().copy(change.getCurrentVersion());
- change.getNetChange().setModType(netModType);
- } else {
- if (ChangeItemUtil.isDeleted(change.getCurrentVersion())) {
- change.getNetChange().copy(change.getCurrentVersion());
- }
}
}
}

Back to the top