001/* 002 * HA-JDBC: High-Availability JDBC 003 * Copyright (C) 2012 Paul Ferraro 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Lesser General Public License as published by 007 * the Free Software Foundation, either version 3 of the License, or 008 * (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018package net.sf.hajdbc.sync; 019 020import net.sf.hajdbc.Database; 021import net.sf.hajdbc.DatabaseCluster; 022import net.sf.hajdbc.SynchronizationStrategy; 023 024/** 025 * Work in progress... 026 * @author Paul Ferraro 027 */ 028public class FastDifferentialSynchronizationStrategy implements SynchronizationStrategy 029{ 030 private static final long serialVersionUID = 2556031934309008750L; 031 032 @Override 033 public String getId() 034 { 035 return "delta"; 036 } 037 038 /** 039 * {@inheritDoc} 040 * @see net.sf.hajdbc.SynchronizationStrategy#init(net.sf.hajdbc.DatabaseCluster) 041 */ 042 @Override 043 public <Z, D extends Database<Z>> void init(DatabaseCluster<Z, D> cluster) 044 { 045// "UPDATE changes.table SET new_flag = $1 WHERE id = NEW.id;"; 046// "INSERT INTO changes.table (id, new_flag) SELECT NEW.id, $1 WHERE NOT EXISTS (SELECT 1 FROM changes.table WHERE id = NEW.id);"; 047 } 048 049 /** 050 * {@inheritDoc} 051 * @see net.sf.hajdbc.SynchronizationStrategy#synchronize(net.sf.hajdbc.sync.SynchronizationContext) 052 */ 053 @Override 054 public <Z, D extends Database<Z>> void synchronize(SynchronizationContext<Z, D> context) 055 { 056 } 057 058 /** 059 * {@inheritDoc} 060 * @see net.sf.hajdbc.SynchronizationStrategy#destroy(net.sf.hajdbc.DatabaseCluster) 061 */ 062 @Override 063 public <Z, D extends Database<Z>> void destroy(DatabaseCluster<Z, D> cluster) 064 { 065 } 066}