1 package org
.argeo
.slc
.web
.mvc
.result
;
3 import javax
.servlet
.http
.HttpServletRequest
;
4 import javax
.servlet
.http
.HttpServletResponse
;
6 import org
.argeo
.slc
.SlcException
;
7 import org
.argeo
.slc
.core
.test
.tree
.TreeTestResult
;
8 import org
.argeo
.slc
.core
.test
.tree
.TreeTestResultCollection
;
9 import org
.argeo
.slc
.dao
.test
.tree
.TreeTestResultCollectionDao
;
10 import org
.argeo
.slc
.services
.TestManagerService
;
11 import org
.argeo
.slc
.web
.mvc
.AbstractServiceController
;
12 import org
.springframework
.util
.PatternMatchUtils
;
13 import org
.springframework
.web
.servlet
.ModelAndView
;
16 * Copy from a collection to another based on Spring simple pattern matching.
18 * @see PatternMatchUtils
20 public class CopyCollectionToCollectionController
extends
21 AbstractServiceController
{
22 private final TreeTestResultCollectionDao testResultCollectionDao
;
23 private final TestManagerService testManagerService
;
25 public CopyCollectionToCollectionController(
26 TreeTestResultCollectionDao testResultCollectionDao
,
27 TestManagerService testManagerService
) {
28 this.testResultCollectionDao
= testResultCollectionDao
;
29 this.testManagerService
= testManagerService
;
32 protected void handleServiceRequest(HttpServletRequest request
,
33 HttpServletResponse response
, ModelAndView modelAndView
)
36 String sourceCollectionId
= request
.getParameter("sourceCollectionId");
37 String targetCollectionId
= request
.getParameter("targetCollectionId");
38 String
[] attrNames
= request
.getParameterValues("attrName");
39 String
[] attrPatterns
= request
.getParameterValues("attrPattern");
42 if (sourceCollectionId
== null || targetCollectionId
== null)
43 throw new SlcException(
44 "Source and target collection ids must be specified");
46 && (attrPatterns
== null || attrNames
.length
!= attrPatterns
.length
))
47 throw new SlcException(
48 "There must be as many attrName as attrPatterns");
50 TreeTestResultCollection sourceCollection
= testResultCollectionDao
51 .getTestResultCollection(sourceCollectionId
);
52 if (attrNames
!= null) {
54 for (String attrName
: attrNames
) {
55 String attrPattern
= attrPatterns
[index
];// safe: checked above
57 for (TreeTestResult treeTestResult
: sourceCollection
59 if (PatternMatchUtils
.simpleMatch(attrPattern
,
60 treeTestResult
.getAttributes().get(attrName
))) {
61 testManagerService
.addResultToCollection(
62 targetCollectionId
, treeTestResult
.getUuid());
70 for (TreeTestResult treeTestResult
: sourceCollection
.getResults()) {
71 testManagerService
.addResultToCollection(targetCollectionId
,
72 treeTestResult
.getUuid());