EMMA Coverage Report (generated Fri Sep 15 10:32:43 EDT 2006)
[all classes][edu.iu.uis.sit.portal.portlet.publishing.web]

COVERAGE SUMMARY FOR SOURCE FILE [FragmentWizardController.java]

nameclass, %method, %block, %line, %
FragmentWizardController.java100% (1/1)71%  (12/17)77%  (399/519)74%  (92.8/126)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class FragmentWizardController100% (1/1)71%  (12/17)77%  (399/519)74%  (92.8/126)
afterPropertiesSet (): void 0%   (0/1)0%   (0/9)0%   (0/3)
handleInvalidSubmit (ActionRequest, ActionResponse): void 0%   (0/1)0%   (0/5)0%   (0/2)
processCancel (ActionRequest, ActionResponse, Object, BindException): void 0%   (0/1)0%   (0/5)0%   (0/2)
renderCancel (RenderRequest, RenderResponse, Object, BindException): ModelAnd... 0%   (0/1)0%   (0/7)0%   (0/2)
renderInvalidSubmit (RenderRequest, RenderResponse): ModelAndView 0%   (0/1)0%   (0/2)0%   (0/1)
parseExpressionHtml (WebFragment): String 100% (1/1)8%   (5/60)14%  (2/14)
validatePage (Object, Errors, int, boolean): void 100% (1/1)54%  (35/65)53%  (10/19)
processFinish (ActionRequest, ActionResponse, Object, BindException): void 100% (1/1)94%  (46/49)93%  (14/15)
handleActionRequestInternal (ActionRequest, ActionResponse): void 100% (1/1)97%  (89/92)99%  (14.8/15)
handleRenderRequestInternal (RenderRequest, RenderResponse): ModelAndView 100% (1/1)99%  (95/96)96%  (22/23)
FragmentWizardController (): void 100% (1/1)100% (3/3)100% (1/1)
createExpression (WebFragment): Expression 100% (1/1)100% (6/6)100% (2/2)
getInitialPage (PortletRequest, Object): int 100% (1/1)100% (42/42)100% (9/9)
getPublishingService (): PublishingService 100% (1/1)100% (3/3)100% (1/1)
initBinder (PortletRequest, PortletRequestDataBinder): void 100% (1/1)100% (28/28)100% (5/5)
renderFinish (RenderRequest, RenderResponse, Object, BindException): ModelAnd... 100% (1/1)100% (43/43)100% (10/10)
setPublishingService (PublishingService): void 100% (1/1)100% (4/4)100% (2/2)

1package edu.iu.uis.sit.portal.portlet.publishing.web;
2 
3import java.sql.Timestamp;
4import java.text.NumberFormat;
5import java.util.ArrayList;
6import java.util.Iterator;
7import java.util.List;
8 
9import javax.portlet.ActionRequest;
10import javax.portlet.ActionResponse;
11import javax.portlet.PortletRequest;
12import javax.portlet.RenderRequest;
13import javax.portlet.RenderResponse;
14 
15import org.springframework.beans.propertyeditors.CustomNumberEditor;
16import org.springframework.beans.propertyeditors.StringTrimmerEditor;
17import org.springframework.validation.BindException;
18import org.springframework.validation.Errors;
19import org.springframework.web.portlet.ModelAndView;
20import org.springframework.web.portlet.bind.PortletRequestDataBinder;
21import org.springframework.web.portlet.mvc.AbstractWizardFormController;
22 
23import edu.iu.uis.sit.portal.portlet.publishing.domain.Acl;
24import edu.iu.uis.sit.portal.portlet.publishing.domain.Fragment;
25import edu.iu.uis.sit.portal.portlet.publishing.services.PublishingService;
26import edu.iu.uis.sit.portal.portlet.security.expression.Expression;
27import edu.iu.uis.sit.portal.portlet.utility.Constants;
28 
29public class FragmentWizardController extends AbstractWizardFormController {
30 
31        private PublishingService publishingService;
32 
33        public void afterPropertiesSet() throws Exception {
34                if (getPublishingService() == null) {
35                        throw new IllegalArgumentException("A PublishingService is required");
36                }
37        }
38 
39        protected void handleActionRequestInternal(ActionRequest request, ActionResponse response) throws Exception {
40                WebFragment webFragment = (WebFragment) getCommand(request);
41                webFragment.setAddPublishGroup(request.getParameter("addPublishGroup") != null);
42                webFragment.setAddViewGroup(request.getParameter("addViewGroup") != null);
43                webFragment.setAddViewRole(request.getParameter("addViewRole") != null);
44 
45                if (request.getParameter("removeAclValue") != null && !"".equals(request.getParameter("removeAclValue"))) {
46                        for (Iterator iter = webFragment.getFragment().getAcls().iterator(); iter.hasNext();) {
47                                Acl acl = (Acl) iter.next();
48                                if (acl.getKey().equals(request.getParameter("removeAclKey")) && acl.getType().equals(request.getParameter("removeAclType")) && acl.getValue().equals(request.getParameter("removeAclValue"))) {
49                                        iter.remove();
50                                        break;
51                                }
52                        }
53                }
54                String attributeName = getFormSessionAttributeName();
55                request.getPortletSession().setAttribute(attributeName, (Object) webFragment);
56                super.handleActionRequestInternal(request, response);
57        }
58 
59        protected ModelAndView handleRenderRequestInternal(RenderRequest request, RenderResponse response) throws Exception {
60                ModelAndView modelAndView = super.handleRenderRequestInternal(request, response);
61                try {
62                        WebFragment webFragment = (WebFragment) getRenderCommand(request);
63                        List groupViews = new ArrayList();
64                        List roleViews = new ArrayList();
65                        List groupPublishs = new ArrayList();
66                        for (Iterator iter = webFragment.getFragment().getAcls().iterator(); iter.hasNext();) {
67                                Acl acl = (Acl) iter.next();
68                                if (Constants.GROUP_PUBLISH.equals(acl.getType())) {
69                                        groupPublishs.add(acl);
70                                } else if (Constants.GROUP_VIEW.equals(acl.getType())) {
71                                        groupViews.add(acl);
72                                } else if (Constants.ROLE_VIEW.equals(acl.getType())) {
73                                        roleViews.add(acl);
74                                }
75                        }
76                        modelAndView.addObject("roleViews", roleViews);
77                        modelAndView.addObject("groupPublishs", groupPublishs);
78                        modelAndView.addObject("groupViews", groupViews);
79                } catch (Exception e) {
80 
81                }
82        if (request.getParameter("updateFragment") != null) {
83            modelAndView.addObject("page",5);
84            modelAndView.setViewName("fragmentPage5");
85        }
86                return modelAndView;
87        }
88 
89        protected void processFinish(ActionRequest request, ActionResponse response, Object command, BindException errors) throws Exception {
90                Timestamp now = new Timestamp(System.currentTimeMillis());
91                WebFragment webFragment = (WebFragment) command;
92                Fragment fragment = webFragment.getFragment();
93                fragment.setLastUpdateDate(now);
94                if (fragment.getFragmentId() == null) {
95                        fragment.setCreateDate(now);
96                }
97                if (Constants.XML_TYPE.equals(fragment.getType())) {
98                        fragment.getFragmentText().setFragment(fragment);
99                } else {
100                        fragment.setFragmentText(null);
101                }
102                if (fragment.getFragmentId() == null) {
103                        response.setRenderParameter("new", "new");
104                }
105        Expression expression = createExpression(webFragment);
106                getPublishingService().saveFragment(fragment);
107        }
108    
109        protected void processCancel(ActionRequest request, ActionResponse response, Object command, BindException errors) throws Exception {
110                response.setRenderParameter("action", "addFragment");
111        }
112 
113        protected void validatePage(Object command, Errors errors, int page, boolean finish) {
114                if (finish) {
115                        this.getValidator().validate(command, errors);
116                        return;
117                }
118                WebFragment webFragment = (WebFragment) command;
119                FragmentValidator fragmentValidator = (FragmentValidator) getValidator();
120                switch (page) {
121                case 0:
122                        if (Constants.RSS_TYPE.equals(webFragment.getFragment().getType())) {
123                                fragmentValidator.validateRSSPage1(webFragment, errors);
124                        } else if (Constants.XML_TYPE.equals(webFragment.getFragment().getType())) {
125                                fragmentValidator.validateXMLPage1(webFragment, errors);
126                        } else if (Constants.URL_TYPE.equals(webFragment.getFragment().getType())) {
127                                fragmentValidator.validateURLPage1(webFragment, errors);
128                        }
129                        break;
130                case 1:
131                        fragmentValidator.validatePage2(webFragment, errors);
132                        break;
133                case 2:
134                        fragmentValidator.validatePage3(webFragment, errors);
135                        break;
136        case 3:
137            fragmentValidator.validatePage4(webFragment, errors);
138            break;
139                }
140        }
141 
142        protected void initBinder(PortletRequest request, PortletRequestDataBinder binder) throws Exception {
143                NumberFormat nf = NumberFormat.getInstance();
144                binder.registerCustomEditor(Integer.class, new CustomNumberEditor(Integer.class, nf, true));
145                binder.registerCustomEditor(Long.class, new CustomNumberEditor(Long.class, nf, true));
146                binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
147        }
148 
149        protected ModelAndView renderCancel(RenderRequest request, RenderResponse response, Object command, BindException errors) throws Exception {
150                ModelAndView modelAndView = new ModelAndView("start");
151                return modelAndView;
152        }
153 
154        protected ModelAndView renderFinish(RenderRequest request, RenderResponse response, Object command, BindException errors) throws Exception {
155                if (request.getParameter("new") != null) {
156                        ModelAndView modelAndView = new ModelAndView("message");
157                        modelAndView.addObject("message", "Saved successfully");
158                        return modelAndView;
159                }
160                ModelAndView modelAndView = new ModelAndView("fragmentPage5");
161                modelAndView.addObject("webFragment",((WebFragment)command));
162                modelAndView.addObject("page",5);
163                String attributeName = getFormSessionAttributeName();
164                
165                request.getPortletSession().setAttribute(attributeName, command);
166                return modelAndView;
167        }
168 
169        protected int getInitialPage(PortletRequest request, Object command) {
170                WebFragment webFragment = (WebFragment) command;
171 
172                if (request.getParameter("fragmentId") != null) {
173                        Fragment found = getPublishingService().findFragmentById(new Long(request.getParameter("fragmentId")));
174                        if (found != null) {
175                                webFragment.setFragment(found);
176                        }
177                } else {
178                        webFragment.getFragment().setType(new Long(request.getParameter("fragmentType")));
179                        webFragment.getFragment().getAclExpression().setAclExpressionType(Constants.OR);
180                }
181                return super.getInitialPage(request, webFragment);
182        }
183 
184        protected ModelAndView renderInvalidSubmit(RenderRequest request, RenderResponse response) throws Exception {
185                return null;
186        }
187 
188        protected void handleInvalidSubmit(ActionRequest request, ActionResponse response) throws Exception {
189                response.setRenderParameter("action", "addFragment");
190        }
191 
192        public PublishingService getPublishingService() {
193                return publishingService;
194        }
195 
196        public void setPublishingService(PublishingService publishingService) {
197                this.publishingService = publishingService;
198        }
199 
200 
201    private Expression createExpression(WebFragment webFragment) {
202        String xml = parseExpressionHtml(webFragment);
203        
204        return null;
205    }
206 
207    private String parseExpressionHtml(WebFragment webFragment) {
208        if (webFragment.getWebAclExpression() == null) {
209            return "";
210        }
211        String xml = webFragment.getWebAclExpression();
212        xml = xml.replaceAll(">", ">\n");
213        xml = xml.replaceAll(".*<script.*", "");
214        xml = xml.replaceAll(".*</script.*", "");
215        xml = xml.replaceAll("<input.*type=\"radio\">", "");
216        xml = xml.replaceAll(" <a href=.*", "");
217        xml = xml.replaceAll("remove</a>", "");
218        xml = xml.replaceAll("\n", "");
219        xml = xml.replaceAll("<li>Root</li>", "");
220        xml = xml.replaceAll("  ", "");
221        xml = xml.replaceAll("\r", "");
222        return xml;
223    }
224}

[all classes][edu.iu.uis.sit.portal.portlet.publishing.web]
EMMA 2.0.5312 (C) Vladimir Roubtsov