00001 /* 00002 /* XRequestCommandDelete.java 00003 * 00004 * Created on June 10, 2005, 3:19 PM 00005 * Created by Detro - 566/2145 00006 */ 00007 00008 package org.jaebi.server.service; 00009 00010 import org.jaebi.server.service.exception.BackEndHandlerGenericException; 00011 import org.jaebi.server.service.exception.CommandExecException; 00012 import org.jaebi.server.service.exception.XRequestCommandInitException; 00013 import org.jaebi.server.service.xml.exception.JAXBXResponseFactoryBuildingException; 00014 import org.jaebi.server.service.xml.xrequest.Xrequest; 00015 00022 public class XRequestCommandDelete extends XRequestCommand { 00023 00025 public XRequestCommandDelete(Xrequest xrequestObj, BackEndHandlerImpl backEndHandler) 00026 throws XRequestCommandInitException { 00027 00028 super(xrequestObj, backEndHandler); 00029 00030 /* Controlla se la Factory ha costruito 00031 * l'XRequestCommand con l'Xrequest corretto */ 00032 if ( !xrequestObj.getType().equalsIgnoreCase("delete") ) { 00033 throw new XRequestCommandInitException( 00034 exceptionPrefix + "Xrequest Type does not match"); 00035 } 00036 } 00037 00043 public Object execute() 00044 throws CommandExecException { 00045 00046 int affectedRows; 00047 00048 try { 00049 if ( getWhereColumnsName().size() == 0 ) { 00050 affectedRows = backEndHandler.delete( 00051 getAffectedTable() 00052 ); 00053 } else { 00054 affectedRows = backEndHandler.delete( 00055 getAffectedTable(), 00056 getWhereColumnsValue() 00057 ); 00058 } 00059 00060 return xresponseFactory.buildXresponse(true, 00061 "DELETE #" + affectedRows + " ROWS" ); 00062 00063 } catch ( JAXBXResponseFactoryBuildingException e ) { 00064 // Errore durante la creazione dell'XResponse 00065 try { 00066 return xresponseFactory.buildXresponse(false, 00067 "Internal Error - " + e.getMessage() ); 00068 } catch ( JAXBXResponseFactoryBuildingException otherE ) { 00069 throw new CommandExecException( exceptionPrefix + otherE ); 00070 } 00071 } catch ( BackEndHandlerGenericException e) { 00072 // Errore nel BackEnd 00073 try { 00074 return xresponseFactory.buildXresponse(false, 00075 "BackEnd Error - " + e.getMessage() ); 00076 } catch ( JAXBXResponseFactoryBuildingException otherE ) { 00077 throw new CommandExecException( exceptionPrefix + otherE ); 00078 } 00079 } 00080 } 00081 00082 }