KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > info > magnolia > module > admininterface > pages > ImportPage


1 package info.magnolia.module.admininterface.pages;
2
3 import info.magnolia.cms.beans.config.ContentRepository;
4 import info.magnolia.cms.beans.runtime.Document;
5 import info.magnolia.cms.core.ie.DataTransporter;
6 import info.magnolia.cms.security.AccessDeniedException;
7 import info.magnolia.cms.security.Permission;
8
9 import java.text.MessageFormat JavaDoc;
10
11 import javax.servlet.ServletException JavaDoc;
12 import javax.servlet.http.HttpServletRequest JavaDoc;
13 import javax.servlet.http.HttpServletResponse JavaDoc;
14
15 import org.apache.commons.lang.StringUtils;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18
19
20 /**
21  * @author Fabrizio Giustina
22  * @version $Id: ImportPage.java 6341 2006-09-12 09:18:27Z philipp $
23  */

24 public class ImportPage extends ExportPage {
25
26     /**
27      * Stable serialVersionUID.
28      */

29     private static final long serialVersionUID = 222L;
30
31     /**
32      * Logger.
33      */

34     private static Logger log = LoggerFactory.getLogger(ImportPage.class);
35
36     private Document mgnlFileImport;
37
38     private String JavaDoc mgnlRedirect;
39
40     private int mgnlUuidBehavior;
41
42     /**
43      * @param name
44      * @param request
45      * @param response
46      */

47     public ImportPage(String JavaDoc name, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
48         super(name, request, response);
49     }
50
51     /**
52      * @see info.magnolia.module.admininterface.pages.ExportPage#getCommand()
53      */

54     public String JavaDoc getCommand() {
55         if ("POST".equals(getRequest().getMethod())) {
56             return "importxml"; // a post request is an import request, preserve the behaviour from the servlet
57
}
58         return super.getCommand();
59     }
60
61     /**
62      * Getter for <code>mgnlFileImport</code>.
63      * @return Returns the mgnlFileImport.
64      */

65     public Document getMgnlFileImport() {
66         return this.mgnlFileImport;
67     }
68
69     /**
70      * Setter for <code>mgnlFileImport</code>.
71      * @param mgnlFileImport The mgnlFileImport to set.
72      */

73     public void setMgnlFileImport(Document mgnlFileImport) {
74         this.mgnlFileImport = mgnlFileImport;
75     }
76
77     /**
78      * Getter for <code>mgnlRedirect</code>.
79      * @return Returns the mgnlRedirect.
80      */

81     public String JavaDoc getMgnlRedirect() {
82         return this.mgnlRedirect;
83     }
84
85     /**
86      * Setter for <code>mgnlRedirect</code>.
87      * @param mgnlRedirect The mgnlRedirect to set.
88      */

89     public void setMgnlRedirect(String JavaDoc mgnlRedirect) {
90         this.mgnlRedirect = mgnlRedirect;
91     }
92
93     /**
94      * Getter for <code>mgnlUuidBehavior</code>.
95      * @return Returns the mgnlUuidBehavior.
96      */

97     public int getMgnlUuidBehavior() {
98         return this.mgnlUuidBehavior;
99     }
100
101     /**
102      * Setter for <code>mgnlUuidBehavior</code>.
103      * @param mgnlUuidBehavior The mgnlUuidBehavior to set.
104      */

105     public void setMgnlUuidBehavior(int mgnlUuidBehavior) {
106         this.mgnlUuidBehavior = mgnlUuidBehavior;
107     }
108
109     /**
110      * @throws Exception
111      */

112     public String JavaDoc importxml() throws Exception JavaDoc {
113
114         if (log.isDebugEnabled()) {
115             log.debug("Import request received."); //$NON-NLS-1$
116
}
117
118         if (StringUtils.isEmpty(mgnlRepository)) {
119             mgnlRepository = ContentRepository.WEBSITE;
120         }
121         if (StringUtils.isEmpty(mgnlPath)) {
122             mgnlPath = "/"; //$NON-NLS-1$
123
}
124
125         if (!checkPermissions(request, mgnlRepository, mgnlPath, Permission.WRITE)) {
126             throw new ServletException JavaDoc(new AccessDeniedException(
127                 "Write permission needed for import. User not allowed to WRITE path [" //$NON-NLS-1$
128
+ mgnlPath
129                     + "]")); //$NON-NLS-1$
130
}
131
132         DataTransporter.importDocument(
133             mgnlFileImport,
134             mgnlRepository,
135             mgnlPath,
136             mgnlKeepVersions,
137             mgnlUuidBehavior,
138             true,
139             true);
140
141         log.info("Import done"); //$NON-NLS-1$
142

143         if (StringUtils.isNotBlank(mgnlRedirect)) {
144             if (log.isInfoEnabled()) {
145                 log.info(MessageFormat.format("Redirecting to [{0}]", //$NON-NLS-1$
146
new Object JavaDoc[]{mgnlRedirect}));
147             }
148             response.sendRedirect(mgnlRedirect);
149             return null;
150         }
151         return this.show();
152     }
153
154 }
Popular Tags