Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmisinco2011-06-28 16:34:55 +0000
committerRyan D. Brooks2011-06-28 16:34:55 +0000
commit319ee5c8eed1d976bd99bbc5a6cec460fe02f438 (patch)
tree3b73990b7d196e93a9d978f8aec43b8bdf99e789 /plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework
parent21c6952d695a7114a5b2ece238a85137d6b7a159 (diff)
downloadorg.eclipse.osee-319ee5c8eed1d976bd99bbc5a6cec460fe02f438.tar.gz
org.eclipse.osee-319ee5c8eed1d976bd99bbc5a6cec460fe02f438.tar.xz
org.eclipse.osee-319ee5c8eed1d976bd99bbc5a6cec460fe02f438.zip
refinement[bgz_350609]: Allow ArtifactExplorer to purge children
Diffstat (limited to 'plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework')
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java13
-rw-r--r--plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeArtifacts.java11
2 files changed, 18 insertions, 6 deletions
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java
index 64cd9617cd2..56a65ac4ee1 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java
@@ -15,10 +15,10 @@ import static org.eclipse.osee.framework.core.enums.CoreRelationTypes.Default_Hi
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
@@ -1095,8 +1095,17 @@ public class Artifact extends NamedIdentity implements IArtifact, IAdaptable, IB
/**
* Remove artifact from a specific branch in the database
*/
+ public final void purgeFromBranch(boolean purgeChildren) throws OseeCoreException {
+ Collection<Artifact> artifacts = new LinkedHashSet<Artifact>();
+ artifacts.add(this);
+ if (purgeChildren) {
+ artifacts.addAll(getDescendants());
+ }
+ Operations.executeWorkAndCheckStatus(new PurgeArtifacts(artifacts));
+ }
+
public final void purgeFromBranch() throws OseeCoreException {
- new PurgeArtifacts(Arrays.asList(this)).execute();
+ purgeFromBranch(false);
}
public final boolean isDeleted() {
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeArtifacts.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeArtifacts.java
index 03633290bdf..853ac1e166e 100644
--- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeArtifacts.java
+++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/PurgeArtifacts.java
@@ -17,12 +17,13 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.osee.framework.core.enums.DeletionFlag;
import org.eclipse.osee.framework.core.exception.OseeCoreException;
import org.eclipse.osee.framework.core.model.Branch;
import org.eclipse.osee.framework.database.IOseeDatabaseService;
+import org.eclipse.osee.framework.database.core.AbstractDbTxOperation;
import org.eclipse.osee.framework.database.core.ConnectionHandler;
-import org.eclipse.osee.framework.database.core.DbTransaction;
import org.eclipse.osee.framework.database.core.IOseeStatement;
import org.eclipse.osee.framework.database.core.OseeConnection;
import org.eclipse.osee.framework.database.core.SQL3DataType;
@@ -38,7 +39,7 @@ import org.eclipse.osee.framework.skynet.core.relation.RelationLink;
/**
* @author Ryan D. Brooks
*/
-public class PurgeArtifacts extends DbTransaction {
+public class PurgeArtifacts extends AbstractDbTxOperation {
private static final String INSERT_SELECT_ITEM =
"INSERT INTO osee_join_transaction (query_id, insert_time, gamma_id, transaction_id) SELECT /*+ ordered FIRST_ROWS */ ?, ?, txs.gamma_id, txs.transaction_id FROM osee_join_artifact aj, %s item, osee_txs txs WHERE aj.query_id = ? AND %s AND item.gamma_id = txs.gamma_id AND aj.branch_id = txs.branch_id";
@@ -59,12 +60,13 @@ public class PurgeArtifacts extends DbTransaction {
private boolean success;
public PurgeArtifacts(Collection<? extends Artifact> artifactsToPurge) {
+ super(Activator.getInstance().getOseeDatabaseService(), "Purge Artifact", Activator.PLUGIN_ID);
this.artifactsToPurge = artifactsToPurge;
this.success = false;
}
@Override
- protected void handleTxWork(OseeConnection connection) throws OseeCoreException {
+ protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException {
if (artifactsToPurge == null || artifactsToPurge.size() == 0) {
return;
}
@@ -178,7 +180,7 @@ public class PurgeArtifacts extends DbTransaction {
}
@Override
- protected void handleTxFinally() throws OseeCoreException {
+ protected void handleTxFinally(IProgressMonitor monitor) throws OseeCoreException {
if (success) {
Set<EventBasicGuidArtifact> artifactChanges = new HashSet<EventBasicGuidArtifact>();
for (Artifact artifact : artifactsToPurge) {
@@ -199,4 +201,5 @@ public class PurgeArtifacts extends DbTransaction {
String sql = String.format(INSERT_SELECT_ITEM, tableName, artifactJoinSql);
databaseService.runPreparedUpdate(connection, sql, transactionJoinId, insertTime, queryId);
}
+
} \ No newline at end of file

Back to the top