001 /* 002 @license.text@ 003 */ 004 package biz.hammurapi.sql.xml; 005 006 import java.sql.SQLException; 007 008 import org.w3c.dom.Element; 009 010 import biz.hammurapi.config.Context; 011 import biz.hammurapi.config.PropertyParser; 012 import biz.hammurapi.sql.SQLProcessor; 013 014 015 /** 016 * @author Pavel Vlasov 017 * @version $Revision: 1.2 $ 018 */ 019 public class Update extends SQLCommand implements Command { 020 021 public void execute(Element holder, SQLProcessor processor, final Context context) throws SQL2XMLException { 022 if (parameterizer==null || parameterizer.setContext(context)) { 023 try { 024 int ret=processor.processUpdate(sql, parameterizer); 025 Element updateElement=holder.getOwnerDocument().createElement("update"); 026 if (name!=null) { 027 updateElement.setAttribute("name", name); 028 } 029 030 holder.appendChild(updateElement); 031 updateElement.appendChild(holder.getOwnerDocument().createTextNode(String.valueOf(ret))); 032 } catch (final SQLException e) { 033 throw new SQL2XMLException( 034 new PropertyParser( 035 new Context() { 036 public Object get(String name) { 037 if ("error.message".equals(name)) { 038 return e.getMessage(); 039 } else if ("error.class".equals(name)) { 040 return e.getClass().getName(); 041 } else { 042 return context.get(name); 043 } 044 } 045 }, false).parse(errorMessage), e); 046 } 047 } 048 } 049 }