diff options
author | jmisinco | 2011-06-28 16:34:55 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2011-06-28 16:34:55 +0000 |
commit | 319ee5c8eed1d976bd99bbc5a6cec460fe02f438 (patch) | |
tree | 3b73990b7d196e93a9d978f8aec43b8bdf99e789 /plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework | |
parent | 21c6952d695a7114a5b2ece238a85137d6b7a159 (diff) | |
download | org.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')
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 |