1 /* 2 * $Id: JdbcMessageRequester.java 20349 2010-11-25 10:56:50Z pablo.kraan $ 3 * -------------------------------------------------------------------------------------- 4 * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com 5 * 6 * The software in this package is published under the terms of the CPAL v1.0 7 * license, a copy of which has been included with this distribution in the 8 * LICENSE.txt file. 9 */ 10 11 package org.mule.transport.jdbc; 12 13 import org.mule.api.MuleEvent; 14 import org.mule.api.MuleMessage; 15 import org.mule.api.endpoint.InboundEndpoint; 16 import org.mule.transport.AbstractMessageRequester; 17 import org.mule.transport.jdbc.sqlstrategy.SqlStatementStrategy; 18 19 20 public class JdbcMessageRequester extends AbstractMessageRequester 21 { 22 23 private JdbcConnector connector; 24 25 public JdbcMessageRequester(InboundEndpoint endpoint) 26 { 27 super(endpoint); 28 this.connector = (JdbcConnector) endpoint.getConnector(); 29 } 30 31 @Override 32 protected void doDispose() 33 { 34 // template method 35 } 36 37 /** 38 * Make a specific request to the underlying transport 39 * 40 * @param timeout the maximum time the operation should block before returning. 41 * The call should return immediately if there is data available. If 42 * no data becomes available before the timeout elapses, null will be 43 * returned 44 * @return the result of the request wrapped in a MuleMessage object. Null will be 45 * returned if no data was available 46 * @throws Exception if the call to the underlying protocol causes an exception 47 */ 48 protected MuleMessage doRequest(long timeout) throws Exception 49 { 50 return doRequest(timeout, null); 51 } 52 53 /** 54 * Make a specific request to the underlying transport 55 * Special case: The event is need when doReceive was called from doSend 56 * @param timeout only for compatibility with doRequest(long timeout) 57 * @param event There is a need to get params from message 58 * @return the result of the request wrapped in a MuleMessage object. Null will be 59 * returned if no data was available 60 * @throws Exception if the call to the underlying protocol causes an exception 61 */ 62 protected MuleMessage doRequest(long timeout, MuleEvent event) throws Exception 63 { 64 String statement = connector.getStatement(endpoint); 65 SqlStatementStrategy strategy = connector.getSqlStatementStrategyFactory().create(statement, null); 66 return strategy.executeStatement(connector, endpoint, event, timeout); 67 } 68 69 70 @Override 71 protected void doConnect() throws Exception 72 { 73 // template method 74 } 75 76 @Override 77 protected void doDisconnect() throws Exception 78 { 79 // template method 80 } 81 82 }