1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kew.export;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import javax.xml.namespace.QName;
22
23 import org.kuali.rice.core.api.impex.ExportDataSet;
24 import org.kuali.rice.kew.doctype.bo.DocumentType;
25 import org.kuali.rice.kew.rule.RuleBaseValues;
26 import org.kuali.rice.kew.rule.RuleDelegationBo;
27 import org.kuali.rice.kew.rule.bo.RuleAttribute;
28 import org.kuali.rice.kew.rule.bo.RuleTemplateBo;
29 import org.kuali.rice.kew.service.KEWServiceLocator;
30 import org.kuali.rice.kim.api.group.Group;
31
32
33
34
35
36
37
38 public class KewExportDataSet {
39
40 public static final QName DOCUMENT_TYPES = new QName("KEW", "documentTypes");
41 public static final QName GROUPS = new QName("KEW", "groups");
42 public static final QName RULE_ATTRIBUTES = new QName("KEW", "ruleAttributes");
43 public static final QName RULE_TEMPLATES = new QName("KEW", "ruleTemplates");
44 public static final QName RULES = new QName("KEW", "rules");
45 public static final QName RULE_DELEGATIONS = new QName("KEW", "ruleDelegations");
46 public static final QName HELP = new QName("KEW", "help");
47 public static final QName EDOCLITES = new QName("KEW", "eDocLites");
48
49 private List<DocumentType> documentTypes = new ArrayList<DocumentType>();
50 private List<Group> groups = new ArrayList<Group>();
51 private List<RuleAttribute> ruleAttributes = new ArrayList<RuleAttribute>();
52 private List<RuleTemplateBo> ruleTemplates = new ArrayList<RuleTemplateBo>();
53 private List<RuleBaseValues> rules = new ArrayList<RuleBaseValues>();
54 private List<RuleDelegationBo> ruleDelegations = new ArrayList<RuleDelegationBo>();
55
56 public List<DocumentType> getDocumentTypes() {
57 return documentTypes;
58 }
59
60 public List<RuleAttribute> getRuleAttributes() {
61 return ruleAttributes;
62 }
63
64 public List<RuleBaseValues> getRules() {
65 return rules;
66 }
67
68 public List<RuleTemplateBo> getRuleTemplates() {
69 return ruleTemplates;
70 }
71
72 public List<Group> getGroups() {
73 return this.groups;
74 }
75
76 public void setGroups(List<Group> groups) {
77 this.groups = groups;
78 }
79
80 public List<RuleDelegationBo> getRuleDelegations() {
81 return this.ruleDelegations;
82 }
83
84 public void populateExportDataSet(ExportDataSet exportDataSet) {
85 if (documentTypes != null && !documentTypes.isEmpty()) {
86
87
88
89
90
91
92
93
94 List<DocumentType> correctDocumentTypes = new ArrayList<DocumentType>();
95 for (DocumentType docType : documentTypes) {
96 correctDocumentTypes.add(KEWServiceLocator.getDocumentTypeService().findById(docType.getDocumentTypeId()));
97 }
98 exportDataSet.addDataSet(DOCUMENT_TYPES, correctDocumentTypes);
99 }
100 if (groups != null && !groups.isEmpty()) {
101 exportDataSet.addDataSet(GROUPS, groups);
102 }
103 if (ruleAttributes != null && !ruleAttributes.isEmpty()) {
104 exportDataSet.addDataSet(RULE_ATTRIBUTES, ruleAttributes);
105 }
106 if (ruleTemplates != null && !ruleTemplates.isEmpty()) {
107 exportDataSet.addDataSet(RULE_TEMPLATES, ruleTemplates);
108 }
109 if (rules != null && !rules.isEmpty()) {
110 exportDataSet.addDataSet(RULES, rules);
111 }
112 if (ruleDelegations != null && !ruleDelegations.isEmpty()) {
113 exportDataSet.addDataSet(RULE_DELEGATIONS, ruleDelegations);
114 }
115 }
116
117 public ExportDataSet createExportDataSet() {
118 ExportDataSet exportDataSet = new ExportDataSet();
119 populateExportDataSet(exportDataSet);
120 return exportDataSet;
121 }
122
123 public static KewExportDataSet fromExportDataSet(ExportDataSet exportDataSet) {
124 KewExportDataSet kewExportDataSet = new KewExportDataSet();
125
126 List<DocumentType> documentTypes = (List<DocumentType>)exportDataSet.getDataSets().get(DOCUMENT_TYPES);
127 if (documentTypes != null) {
128 kewExportDataSet.getDocumentTypes().addAll(documentTypes);
129 }
130 List<Group> groups = (List<Group>)exportDataSet.getDataSets().get(GROUPS);
131 if (groups != null) {
132 kewExportDataSet.getGroups().addAll(groups);
133 }
134 List<RuleAttribute> ruleAttributes = (List<RuleAttribute>)exportDataSet.getDataSets().get(RULE_ATTRIBUTES);
135 if (ruleAttributes != null) {
136 kewExportDataSet.getRuleAttributes().addAll(ruleAttributes);
137 }
138 List<RuleTemplateBo> ruleTemplates = (List<RuleTemplateBo>)exportDataSet.getDataSets().get(RULE_TEMPLATES);
139 if (ruleTemplates != null) {
140 kewExportDataSet.getRuleTemplates().addAll(ruleTemplates);
141 }
142 List<RuleBaseValues> rules = (List<RuleBaseValues>)exportDataSet.getDataSets().get(RULES);
143 if (rules != null) {
144 kewExportDataSet.getRules().addAll(rules);
145 }
146 List<RuleDelegationBo> ruleDelegations = (List<RuleDelegationBo>)exportDataSet.getDataSets().get(RULE_DELEGATIONS);
147 if (ruleDelegations != null) {
148 kewExportDataSet.getRuleDelegations().addAll(ruleDelegations);
149 }
150
151 return kewExportDataSet;
152 }
153
154 }