1 16 package org.outerj.daisy.repository.serverimpl; 17 18 import org.apache.xmlbeans.XmlObject; 19 import org.outerj.daisy.repository.RepositoryException; 20 import org.outerj.daisy.jdbcutil.JdbcHelper; 21 22 import java.sql.Connection ; 23 import java.sql.SQLException ; 24 import java.sql.PreparedStatement ; 25 import java.io.CharArrayWriter ; 26 import java.io.IOException ; 27 28 public class EventHelper { 29 private LocalRepositoryManager.Context context; 30 private JdbcHelper jdbcHelper; 31 32 public EventHelper(LocalRepositoryManager.Context context, JdbcHelper jdbcHelper) { 33 this.context = context; 34 this.jdbcHelper = jdbcHelper; 35 } 36 37 42 public void createEvent(XmlObject eventDescription, String eventName, Connection conn) throws SQLException , RepositoryException { 43 PreparedStatement stmt = null; 44 try { 45 stmt = conn.prepareStatement("insert into events(seqnr, message_type, message) values(?,?,?)"); 46 stmt.setLong(1, context.getNextEventId()); 47 stmt.setString(2, eventName); 48 stmt.setString(3, eventToString(eventDescription)); 49 stmt.execute(); 50 stmt.close(); 51 } finally { 52 jdbcHelper.closeStatement(stmt); 53 } 54 55 } 56 57 private String eventToString(XmlObject xmlObject) throws RepositoryException { 58 CharArrayWriter writer = new CharArrayWriter (5000); 59 try { 60 xmlObject.save(writer); 61 } catch (IOException e) { 62 throw new RepositoryException("Error serializing event description.", e); 63 } 64 return writer.toString(); 65 } 66 67 } 68 | Popular Tags |