View Javadoc

1   package org.thema.scriptware.dao;
2   
3   import java.sql.Connection;
4   import org.thema.scriptware.dao.DdlDAO;
5   
6   /***
7    * Classe que implementa o padrão DAO (Data Access Object).
8    * <br>
9    * Utiliza o conceito de Abstract Factory para construir vários tipos
10   * de fábricas de DAO, suportando diferentes tipos de implementação de
11   * armazenamento persistente.
12   *
13   * @author Eduardo M. Sasso
14   * @since Jan 12, 2004
15   */
16  public abstract class DAOFactory {
17      public static final int MYSQL = 1;
18      public static final int ORACLE = 2;
19      
20      /***
21       * Método abstrato que deve ser implementado pela classe concreta
22       * @return Interface que define os métodos que devem ser
23       * implementados por todas as implementações de DAO como
24       * OracleDmlDao
25       *
26       */
27      public abstract DmlDAO getDmlDAO(Connection conn);
28      
29      /***
30       * Método de gancho que deve ser implementado por todas as classes
31       * concretas para extracao de ddl de objetos do banco de dados
32       */    
33      public abstract DdlDAO getDdlDAO(Connection conn);
34      
35      
36      /***
37       *
38       * @param whichFactory
39       * @return Uma implementação DAO concreta para a factory escolhida
40       */
41      public static DAOFactory getDAOFactory(int whichFactory) {
42          switch (whichFactory) {
43              case ORACLE :
44                  return new OracleDAOFactory();
45              /*    
46              case MYSQL :
47                  return new MysqlDAOFactory();
48               */
49              default :
50                  return null;
51                  
52          }
53      }
54  }