2
* HA-JDBC: High-Availability JDBC
3
* Copyright (c) 2004-2007 Paul Ferraro
5
* This library is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU Lesser General Public License as published by the
7
* Free Software Foundation; either version 2.1 of the License, or (at your
8
* option) any later version.
10
* This library is distributed in the hope that it will be useful, but WITHOUT
11
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15
* You should have received a copy of the GNU Lesser General Public License
16
* along with this library; if not, write to the Free Software Foundation,
17
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
* Contact: ferraro@users.sourceforge.net
21
package net.sf.hajdbc.sql;
24
import java.util.SortedMap;
25
import java.util.TreeMap;
27
import net.sf.hajdbc.Database;
30
* @author Paul Ferraro
33
public class DriverWriteInvocationStrategy<D, T, R> implements InvocationStrategy<D, T, R>
36
* @see net.sf.hajdbc.sql.InvocationStrategy#invoke(net.sf.hajdbc.sql.SQLProxy, net.sf.hajdbc.sql.Invoker)
39
public R invoke(SQLProxy<D, T> proxy, Invoker<D, T, R> invoker) throws Exception
41
SortedMap<Database<D>, R> map = this.invokeAll(proxy, invoker);
43
return map.get(map.firstKey());
46
protected SortedMap<Database<D>, R> invokeAll(SQLProxy<D, T> proxy, Invoker<D, T, R> invoker) throws Exception
48
SortedMap<Database<D>, R> resultMap = new TreeMap<Database<D>, R>();
50
for (Map.Entry<Database<D>, T> entry: proxy.entries())
52
Database<D> database = entry.getKey();
54
resultMap.put(database, invoker.invoke(database, entry.getValue()));