00001 /* 00002 * XRequestCommandFactory.java 00003 * 00004 * Created on June 5, 2005, 6:46 PM 00005 * Created by Detro - 566/2145 00006 */ 00007 00008 package org.jaebi.server.service; 00009 00010 import org.jaebi.server.service.exception.CommandCreationException; 00011 import org.jaebi.server.service.exception.XRequestCommandFactoryInitException; 00012 import org.jaebi.server.service.exception.XRequestCommandInitException; 00013 import org.jaebi.server.service.xml.JAXBMarshallerWrapper; 00014 import org.jaebi.server.service.xml.JAXBMarshallerWrapperImpl; 00015 import org.jaebi.server.service.xml.exception.JAXBMarshallerWrapperInitException; 00016 import org.jaebi.server.service.xml.xrequest.Xrequest; 00017 00018 00028 public class XRequestCommandFactory extends CommandFactory { 00031 private static JAXBMarshallerWrapper marshWrap; 00032 private static final String exceptionPrefix = "[BackEndHandlerImpl Exception]: "; 00033 00043 public XRequestCommandFactory(BackEndHandler newBackEndHandler) 00044 throws XRequestCommandFactoryInitException { 00045 00046 super(newBackEndHandler); 00047 00048 try { 00049 marshWrap = 00050 new JAXBMarshallerWrapperImpl("org.jaebi.server.service.xml.xrequest"); 00051 } catch ( JAXBMarshallerWrapperInitException je ) { 00052 throw new XRequestCommandFactoryInitException( exceptionPrefix + je ); 00053 } 00054 } 00055 00056 public Command createCommand(Object request) 00057 throws CommandCreationException { 00058 00059 return createCommand((Xrequest)request); 00060 } 00061 00074 public XRequestCommand createCommand(Xrequest request) 00075 throws CommandCreationException { 00076 00077 XRequestCommand newCommand = null; 00078 00079 try { 00080 if ( request.getType().equalsIgnoreCase("delete") ) { 00081 newCommand = new XRequestCommandDelete(request, 00082 (BackEndHandlerImpl)this.backEndHandler); 00083 } 00084 00085 else if ( request.getType().equalsIgnoreCase("insert") ) { 00086 newCommand = new XRequestCommandInsert(request, 00087 (BackEndHandlerImpl)this.backEndHandler); 00088 } 00089 00090 else if ( request.getType().equalsIgnoreCase("select") ) { 00091 newCommand = new XRequestCommandSelect(request, 00092 (BackEndHandlerImpl)this.backEndHandler); 00093 } 00094 00095 else if ( request.getType().equalsIgnoreCase("update") ) { 00096 newCommand = new XRequestCommandUpdate(request, 00097 (BackEndHandlerImpl)this.backEndHandler); 00098 } 00099 00100 else throw new CommandCreationException( exceptionPrefix 00101 + " - Malformed XML: \"/xrequest/@type\" unknown." ); 00102 } catch ( XRequestCommandInitException xreqe ) { 00103 throw new CommandCreationException( exceptionPrefix 00104 + xreqe + " - Type Selection Error." ); 00105 } 00106 00107 return newCommand; 00108 } 00109 }