package com.processpuzzle.artifact_management.control;
import java.io.IOException;
import com.processpuzzle.application.control.control.CommandDispatcher;
public class ReserveArtifactCommand extends ArtifactActionCommand {
public static String COMMAND_NAME = "ReserveArtifact";
public static String COMMENT_NAME_PARAM = "reservationComment";
// private String comment = "";
// private String method = "";
// private String status = "";
protected void retrieveRequestParameters(CommandDispatcher request) {
super.retrieveRequestParameters(request);
// comment = (String) request.getAttribute(COMMENT_NAME_PARAM);
// method = request.getParameter("method");
// status = request.getParameter("status");
}
public String getName() {
return "ReserveArtifact";
}
protected void doAction() {
System.out.println("doAction()");
// String locale =
// loggedInUser.getSystemUser().getPrefferedLocale().getLanguage();
// ArtifactRepository theArtifactRepository =
// (ArtifactRepository)Configuration.getInstance().getRepository(ArtifactRepository.class);
// String message = "";
/*
* if (method.equals("canReserve")) { message = "0"; //ez jelenti azt,
* hogy rendben, le lehet lefoglalni if (subjectArtifact == null) message =
* Configuration.getText("ui.reserverelease.message.notExistDocument",
* locale); else { if (subjectArtifact.isReserved()) message =
* Configuration.getText("ui.reserve.message.reservedBy",
* locale)+subjectArtifact.getReservedVersion().getResponsible().getFormattedName()+".";
* else if (subjectArtifact instanceof Document &&
* ((Document)subjectArtifact).getFileStorage() != null) { File file =
* null; try { file = new
* File(((Document)subjectArtifact).getFileStorage().getSource()); } catch
* (Exception e) { file = null; } if (file == null || !file.exists())
* message =
* Configuration.getText("ui.reserve.message.missingFileFromServer",
* locale)+((Document)subjectArtifact).getFileStorage().getOriginalFileName()+")."; } } }
* else if (method.equals("reserved")) { if( ( status != null ) && (
* status.equals("ok") ) ) { try {
* subjectArtifact.reserve(loggedInUser,comment);
* theArtifactRepository.updateArtifact(subjectArtifact); message = "0"; }
* catch (VersionControlException e) { message =
* Configuration.getText("ui.reserve.message.reservedBy",
* locale)+subjectArtifact.getReservedVersion().getResponsible().getFormattedName()+"."; } }
* else message = Configuration.getText("ui.reserverelease.message.error",
* locale); } if (method.equals("reserve")) { try { File file = new
* File(((Document)subjectArtifact).getFileStorage().getSource());
* BufferedOutputStream outputStream = new
* BufferedOutputStream(dispatcher.getResponse().getOutputStream());
* BufferedInputStream inputStream = new BufferedInputStream(new
* FileInputStream(file));
* dispatcher.getResponse().setContentType("application/msword");
* dispatcher.getResponse().setContentLength(new
* Long(file.length()).intValue()); int start = 0; int length = 1024; int
* offset = -1; byte[] buffer = new byte[length]; while ((offset =
* inputStream.read(buffer, start, length)) != -1) {
* outputStream.write(buffer, start, offset); } inputStream.close();
* outputStream.close(); } catch (IOException e) { message =
* Configuration.getText("ui.reserverelease.message.ioError", locale); } }
* else // write message {
* dispatcher.getResponse().setContentType("text/plain");
* dispatcher.getResponse().reset(); try {
* dispatcher.getResponse().getWriter().println(URLEncoder.encode(message,
* "UTF-8")); } catch (UnsupportedEncodingException e) {
* e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
*
* try { dispatcher.getResponse().getWriter().close(); } catch
* (IOException e) { e.printStackTrace(); } }
*
* actionResponse.setOutcome(true);
*/
}
protected void buildResponse(CommandDispatcher dispatcher) throws IOException {}
}