package com.processpuzzle.artifact_management.control;
import java.io.IOException;
import com.processpuzzle.application.control.control.CommandDispatcher;
public class ReleaseArtifactCommand extends ArtifactActionCommand {
public static String COMMAND_NAME = "ReleaseArtifact";
// private String method = "";
// private String status = "";
// private String fileSize = "";
protected void retrieveRequestParameters(CommandDispatcher request) {
super.retrieveRequestParameters(request);
// method = request.getParameter("method");
// status = request.getParameter("status");
// fileSize = request.getParameter("fileSize");
}
public String getName() {
return "ReleaseArtifact";
}
protected void doAction() {
// String locale =
// loggedInUser.getSystemUser().getPrefferedLocale().getLanguage();
// ArtifactRepository theArtifactRepository =
// (ArtifactRepository)Configuration.getInstance().getRepository(ArtifactRepository.class);
// String message = "";
// if (method.equals("canRelease"))
// {
// message = "0";
// if(subjectArtifact == null)
// message =
// Configuration.getText("ui.reserverelease.message.notExistDocument",
// locale);
// else if(!subjectArtifact.isReserved())
// message = Configuration.getText("ui.release.message.notReserved", locale);
// else
// if(!subjectArtifact.getReservedVersion().getResponsible().getId().equals(loggedInUser.getId()))
// message = Configuration.getText("ui.reserve.message.reservedBy",
// locale)+subjectArtifact.getReservedVersion().getResponsible().getFormattedName()+".";
// }
/*
* else if(method.equals("released")) { if(status != null &&
* status.equals("ok")) { FileStorage fileStorage = (FileStorage)
* dispatcher.getRequest().getSession(true).getAttribute(subjectArtifact.getName()+"_FileStorage");
* message = (String)
* dispatcher.getRequest().getSession(true).getAttribute(subjectArtifact.getName()+"_Message");
* if( message == null ) { try { if( fileStorage != null ) { if(
* fileStorage.getSize().equals(new Long(fileSize) ) ) {
* subjectArtifact.release(loggedInUser);
* ((Document)subjectArtifact).setFileStorage(fileStorage);
* theArtifactRepository.updateArtifact(subjectArtifact); message = "0"; }
* else { File file = new File(fileStorage.getSource()); if( file != null &&
* file.exists() ) { file.delete(); } message =
* Configuration.getText("ui.reserverelease.message.ioError", locale); } }
* else { if( ( subjectArtifact instanceof Document) && (
* ((Document)subjectArtifact).getFileStorage() != null ) ) { message =
* Configuration.getText("ui.reserverelease.message.ioError", locale); } else {
* subjectArtifact.release(loggedInUser);
* theArtifactRepository.updateArtifact(subjectArtifact); message = "0"; } } }
* catch (VersionControlException e) { message =
* Configuration.getText("ui.release.message.reservedByOther",
* locale)+subjectArtifact.getReservedVersion().getResponsible().getFormattedName()+"."; } } }
* else message = Configuration.getText("ui.reserverelease.message.error",
* locale);
* dispatcher.getRequest().getSession(true).removeAttribute(subjectArtifact.getName()+"_FileStorage");
* dispatcher.getRequest().getSession(true).removeAttribute(subjectArtifact.getName()+"_Message"); }
* if(method.equals("release")) { try { File folder = new
* File((String)Configuration.getProperty(Configuration.FRAMEWORK_LOCATION));
* File file = File.createTempFile("file",
* ((Document)subjectArtifact).getFileStorage().getOriginalFileName() +
* ".data", folder); BufferedOutputStream outputStream = new
* BufferedOutputStream(new FileOutputStream(file)); BufferedInputStream
* inputStream = new
* BufferedInputStream(dispatcher.getRequest().getInputStream()); 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(); FileStorage fileStorage = new
* FileStorage(((Document)subjectArtifact).getFileStorage().getOriginalFileName());
* fileStorage.setSource(file.getPath());
* fileStorage.setContentType("application/msword");
* fileStorage.setUploadDate(new Date(System.currentTimeMillis()));
* fileStorage.setSize(new Long(file.length()));
* //dispatcher.getRequest().getSession(true).setAttribute(subjectArtifact.getName()+"_FileStorage",
* fileStorage); } catch (IOException e){
* dispatcher.getRequest().getSession(true).setAttribute(subjectArtifact.getName()+"_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(); } }
*/
}
protected void buildResponse(CommandDispatcher dispatcher) throws IOException {}
}