diff options
author | Ryan D. Brooks | 2011-05-03 21:11:11 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2011-05-03 21:11:11 +0000 |
commit | d0ba9178aa64a2216b7a00934a29940b8f8970d4 (patch) | |
tree | ce990ef5091a5cefe0ede8ff9b211f37d4aef3f7 /plugins/org.eclipse.osee.framework.branch.management/src | |
parent | c68a5c5ad6083409ce94aba7e9705a22fff4acb0 (diff) | |
download | org.eclipse.osee-d0ba9178aa64a2216b7a00934a29940b8f8970d4.tar.gz org.eclipse.osee-d0ba9178aa64a2216b7a00934a29940b8f8970d4.tar.xz org.eclipse.osee-d0ba9178aa64a2216b7a00934a29940b8f8970d4.zip |
refinement: Expose recursive purge operation to client through http
Diffstat (limited to 'plugins/org.eclipse.osee.framework.branch.management/src')
2 files changed, 16 insertions, 1 deletions
diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/internal/OseeBranchService.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/internal/OseeBranchService.java index 36f2eb0a4a2..7cd28cdd44d 100644 --- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/internal/OseeBranchService.java +++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/internal/OseeBranchService.java @@ -21,7 +21,10 @@ import org.eclipse.osee.framework.branch.management.commit.CommitDbOperation; import org.eclipse.osee.framework.branch.management.creation.CreateBranchOperation; import org.eclipse.osee.framework.branch.management.purge.BranchOperation; import org.eclipse.osee.framework.branch.management.purge.IBranchOperationFactory; +import org.eclipse.osee.framework.branch.management.purge.IBranchesProvider; import org.eclipse.osee.framework.branch.management.purge.PurgeBranchOperationFactory; +import org.eclipse.osee.framework.branch.management.purge.RecursiveBranchProvider; +import org.eclipse.osee.framework.branch.management.purge.SingleBranchProvider; import org.eclipse.osee.framework.core.enums.BranchArchivedState; import org.eclipse.osee.framework.core.enums.BranchState; import org.eclipse.osee.framework.core.enums.BranchType; @@ -43,6 +46,7 @@ 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.cache.BranchCache; +import org.eclipse.osee.framework.core.model.cache.BranchFilter; import org.eclipse.osee.framework.core.model.cache.TransactionCache; import org.eclipse.osee.framework.core.operation.AbstractOperation; import org.eclipse.osee.framework.core.operation.CompositeOperation; @@ -152,7 +156,14 @@ public class OseeBranchService implements IOseeBranchService { IBranchOperationFactory factory = new PurgeBranchOperationFactory(logger, branchCache, oseeDatabaseProvider.getOseeDatabaseService()); - return new BranchOperation(logger, factory, branch); + IBranchesProvider provider; + if (request.isRecursive()) { + provider = new RecursiveBranchProvider(branch, new BranchFilter()); + } else { + provider = new SingleBranchProvider(branch); + } + + return new BranchOperation(logger, factory, provider); } @Override diff --git a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/purge/PurgeBranchOperation.java b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/purge/PurgeBranchOperation.java index 3c0c79ddc19..e4bec2cce14 100644 --- a/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/purge/PurgeBranchOperation.java +++ b/plugins/org.eclipse.osee.framework.branch.management/src/org/eclipse/osee/framework/branch/management/purge/PurgeBranchOperation.java @@ -73,6 +73,10 @@ public class PurgeBranchOperation extends AbstractDbTxOperation { this.connection = connection; this.monitor = monitor; + if (branch.getStorageState() == StorageState.PURGED) { + return; + } + if (!branch.getAllChildBranches(false).isEmpty()) { throw new OseeArgumentException("Unable to purge a branch containing children: branchGuid[%s] branchType[%s]", branch.getGuid(), branch.getBranchType()); |