1 package org
.argeo
.slc
.web
.mvc
.result
;
3 import java
.util
.ArrayList
;
6 import javax
.servlet
.http
.HttpServletRequest
;
7 import javax
.servlet
.http
.HttpServletResponse
;
9 import org
.argeo
.slc
.SlcException
;
10 import org
.argeo
.slc
.core
.test
.tree
.TreeTestResult
;
11 import org
.argeo
.slc
.core
.test
.tree
.TreeTestResultCollection
;
12 import org
.argeo
.slc
.dao
.test
.tree
.TreeTestResultCollectionDao
;
13 import org
.argeo
.slc
.services
.test
.TestManagerService
;
14 import org
.argeo
.slc
.web
.mvc
.AbstractServiceController
;
15 import org
.springframework
.util
.PatternMatchUtils
;
16 import org
.springframework
.web
.servlet
.ModelAndView
;
18 public class RemoveResultFromCollectionController
extends
19 AbstractServiceController
{
20 private final TreeTestResultCollectionDao testResultCollectionDao
;
21 private final TestManagerService testManagerService
;
23 public RemoveResultFromCollectionController(
24 TreeTestResultCollectionDao testResultCollectionDao
,
25 TestManagerService testManagerService
) {
26 this.testResultCollectionDao
= testResultCollectionDao
;
27 this.testManagerService
= testManagerService
;
30 protected void handleServiceRequest(HttpServletRequest request
,
31 HttpServletResponse response
, ModelAndView modelAndView
)
34 String collectionId
= request
.getParameter("collectionId");
35 String
[] resultUuids
= request
.getParameterValues("resultUuid");
36 String
[] attrNames
= request
.getParameterValues("attrName");
37 String
[] attrPatterns
= request
.getParameterValues("attrPattern");
40 if (collectionId
== null)
41 throw new SlcException("A collection id must be specified");
43 && (attrPatterns
== null || attrNames
.length
!= attrPatterns
.length
))
44 throw new SlcException(
45 "There must be as many attrName as attrPatterns");
47 // Remove specified results
48 if (resultUuids
!= null)
49 for (String resultUuid
: resultUuids
)
50 testManagerService
.removeResultFromCollection(collectionId
,
53 if (attrNames
!= null) {
54 TreeTestResultCollection sourceCollection
= testResultCollectionDao
55 .getTestResultCollection(collectionId
);
58 for (String attrName
: attrNames
) {
59 String attrPattern
= attrPatterns
[index
];// safe: checked above
61 List
<TreeTestResult
> results
= new ArrayList
<TreeTestResult
>(
62 sourceCollection
.getResults());
63 for (TreeTestResult treeTestResult
: results
) {
64 if (PatternMatchUtils
.simpleMatch(attrPattern
,
65 treeTestResult
.getAttributes().get(attrName
))) {
66 testManagerService
.removeResultFromCollection(
67 collectionId
, treeTestResult
.getUuid());
73 if (resultUuids
== null) {// no specs
76 TreeTestResultCollection sourceCollection
= testResultCollectionDao
77 .getTestResultCollection(collectionId
);
78 List
<TreeTestResult
> results
= new ArrayList
<TreeTestResult
>(
79 sourceCollection
.getResults());
80 for (TreeTestResult treeTestResult
: results
) {
81 testManagerService
.removeResultFromCollection(collectionId
,
82 treeTestResult
.getUuid());