View Javadoc

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  }