1 /*** 2 * Copyright 2009 ATG DUST Project Licensed under the Apache License, Version 3 * 2.0 (the "License"); you may not use this file except in compliance with the 4 * License. You may obtain a copy of the License at 5 * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 6 * or agreed to in writing, software distributed under the License is 7 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 8 * KIND, either express or implied. See the License for the specific language 9 * governing permissions and limitations under the License. 10 */ 11 12 package atg.service.idgen; 13 14 import java.sql.SQLException; 15 16 import atg.nucleus.ServiceException; 17 18 /*** 19 * This IDGenerator is intended to be used by unit tests. It will manage it's 20 * own database schema rather than assuming the tables already exist. Otherwise 21 * it's the same functionality as the ObfuscatedSQLIdGenerator. 22 * 23 * @author adamb 24 * @version $Id: //test/UnitTests/base/main/src/Java/atg/service/idgen/ 25 * InitializingSQLIdGenerator.java#1 $ 26 */ 27 public class InitializingObfuscatedSQLIdGenerator extends 28 ObfuscatedSQLIdGenerator implements InitializingIdGenerator { 29 30 IdGeneratorInitializer mInitializer; 31 32 /*** 33 * The SQL statement required to create the table used by this component. 34 */ 35 public static final String CREATE_STATEMENT = "create table das_secure_id_gen" 36 + " (id_space_name varchar2(60) not null," 37 + "seed number(19,0) not null," 38 + "batch_size integer not null," 39 + "ids_per_batch integer null," 40 + "prefix varchar2(10)," 41 + "suffix varchar2(10)," 42 + "constraint das_secure_id_ge_p primary key (id_space_name))"; 43 44 /*** 45 * Ensures that the required tables for this id generator exist. 46 */ 47 @Override 48 public void doStartService() throws ServiceException { 49 if (mInitializer == null) 50 mInitializer = new IdGeneratorInitializer(this); 51 try { 52 mInitializer.initialize(); 53 } catch (SQLException e) { 54 throw new ServiceException(e); 55 } 56 } 57 58 /*** 59 * Returns the create statement appropriate for the current database 60 */ 61 public String getCreateStatement() { 62 return CREATE_STATEMENT; 63 } 64 }