📄 deleteactionservlet.java
字号:
/*
* Copyright (c) 2004, 2005 Polarion Software, All rights reserved.
* Email: community@polarion.org
*
* This program and the accompanying materials are made available under the
* terms of the Apache License, Version 2.0 (the "License"). You may not use
* this file except in compliance with the License. Copy of the License is
* located in the file LICENSE.txt in the project distribution. You may also
* obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
*
* POLARION SOFTWARE MAKES NO REPRESENTATIONS OR WARRANTIES
* ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESSED OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. POLARION SOFTWARE
* SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT
* OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
*/
package org.polarion.svnwebclient.web.servlet;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.polarion.svnwebclient.SVNWebClientException;
import org.polarion.svnwebclient.data.AuthenticationException;
import org.polarion.svnwebclient.data.DataProviderException;
import org.polarion.svnwebclient.data.IDataProvider;
import org.polarion.svnwebclient.data.model.DataChangedElement;
import org.polarion.svnwebclient.web.AttributeStorage;
import org.polarion.svnwebclient.web.controller.ChangeConfirmation;
import org.polarion.svnwebclient.web.model.Navigation;
import org.polarion.svnwebclient.web.model.data.ChangeResult;
import org.polarion.svnwebclient.web.resource.Links;
import org.polarion.svnwebclient.web.support.FormParameters;
import org.polarion.svnwebclient.web.support.RequestHandler;
/**
*
* @author <A HREF="mailto:svnbrowser@polarion.org">Polarion Software </A>
*/
public class DeleteActionServlet extends AbstractServlet {
protected static final long CURRENT_REVISION = -1;
public static final String DELETED_ELEMENTS = "deletedelements";
private static final long serialVersionUID = 3790513931839705409L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.execute(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.execute(request, response);
}
protected void executeSVNOperation(IDataProvider dataProvider) throws SVNWebClientException {
String comment = this.state.getRequest().getParameter(FormParameters.COMMENT);
List deletedElements = (List) this.state.getRequest().getSession().getAttribute(DeleteActionServlet.DELETED_ELEMENTS);
if (comment == null) {
comment = (String)AttributeStorage.getInstance().getParameter(this.state.getRequest().getSession(),
FormParameters.COMMENT);
} else {
AttributeStorage.getInstance().addParameter(this.state.getRequest().getSession(), FormParameters.COMMENT, comment);
}
ChangeResult changeResult = null;
Navigation navigation = new Navigation(this.requestHandler.getUrl(), this.requestHandler.getLocation(),DeleteActionServlet.CURRENT_REVISION, false);
try {
DataChangedElement changedElement = dataProvider.delete(this.requestHandler.getUrl(), deletedElements, comment);
List elements = new ArrayList();
ChangeResult.Element element = new ChangeResult.Element();
String elementName = changedElement.getName();
if (elementName.length() == 0) {
elementName = Navigation.REPOSITORY;
}
element.setName(elementName);
element.setAuthor(changedElement.getAuthor());
element.setComment(changedElement.getComment());
element.setDate(changedElement.getDate());
element.setDirectory(true);
element.setRevision(changedElement.getRevision());
elements.add(element);
String message = "Elements were succesfully deleted";
changeResult = new ChangeResult(true, message, elements, navigation);
} catch (AuthenticationException ae) {
throw ae;
} catch (DataProviderException e) {
AttributeStorage.getInstance().cleanSession(this.state.getRequest().getSession());
this.state.getRequest().getSession().removeAttribute(DeleteActionServlet.DELETED_ELEMENTS);
throw new SVNWebClientException("Delete was failed", e);
}
AttributeStorage.getInstance().cleanSession(this.state.getRequest().getSession());
this.state.getRequest().getSession().removeAttribute(DeleteActionServlet.DELETED_ELEMENTS);
this.state.getRequest().getSession().setAttribute(ChangeConfirmation.CHANGE_RESULT, changeResult);
RequestDispatcher dispatcher = this.state.getRequest().getRequestDispatcher(Links.CHANGE_CONFIRMATION);
try {
dispatcher.forward(this.state.getRequest(), this.state.getResponse());
} catch (Exception e) {
throw new SVNWebClientException(e);
}
}
protected RequestHandler getRequestHandler(HttpServletRequest request) {
return new RequestHandler(request);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -