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.dialect; 019 020import net.sf.hajdbc.AbstractNamed; 021import net.sf.hajdbc.QualifiedName; 022import net.sf.hajdbc.QualifiedNameFactory; 023import net.sf.hajdbc.SequenceProperties; 024import net.sf.hajdbc.SequencePropertiesFactory; 025 026public class StandardSequencePropertiesFactory implements SequencePropertiesFactory 027{ 028 private final QualifiedNameFactory factory; 029 030 public StandardSequencePropertiesFactory(QualifiedNameFactory factory) 031 { 032 this.factory = factory; 033 } 034 035 @Override 036 public SequenceProperties createSequenceProperties(String schema, String name, int increment) 037 { 038 return new StandardSequenceProperties(this.factory.createQualifiedName(schema, name), increment); 039 } 040 041 private class StandardSequenceProperties extends AbstractNamed<QualifiedName, SequenceProperties> implements SequenceProperties 042 { 043 private final int increment; 044 045 StandardSequenceProperties(QualifiedName name, int increment) 046 { 047 super(name); 048 this.increment = increment; 049 } 050 051 @Override 052 public int getIncrement() 053 { 054 return this.increment; 055 } 056 } 057}