gt:          if (!Utils.isNull(Utils.split(id, "\\|")[0]) &&
context: package ar.com.mutual.back.geografia;
  
  import java.sql.PreparedStatement;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import java.util.ArrayList;
  import java.util.List;
  
  import org.apache.log4j.Logger;
  
  import ar.com.mutual.bean.geografia.Localidad;
  import ar.com.mutual.bean.geografia.CodigoPostal;
  import ar.com.mutual.bean.geografia.Provincia;
  import ar.com.mutual.back.DAOGeneral;
  import ar.com.mutual.support.util.Utils;
  
  public class CodigoPostalDAO extends DAOGeneral {
  	
  	private final static Logger log = Logger.getLogger(CodigoPostalDAO.class);
  
     private static String SELECT =
        "SELECT GECP_NU_POSTAL         id," + 
               "GECP_CAES_CD_PROVINCIA codigoProvincia," + 
               "GECP_CD_CODIGO_POSTAL codigoLocalidad," + 
               "GECP_CD_CODIGO_POSTAL  codigoPostal," +
               "GECP_DE_LOCALIDAD      descripcion" +
        " FROM GENT_CODIGOS_POSTALES C" +
        " WHERE GECP_NU_POSTAL > 0";
  
     private static String SELECT_BY_LOCALIDAD = 
  	   "SELECT GECP_NU_POSTAL         id, " +  
  	   "GECP_CAES_CD_PROVINCIA codigoProvincia, " +  
  	   "GECP_CD_CODIGO_POSTAL codigoLocalidad, " +  
  	   "GECP_CD_CODIGO_POSTAL  codigoPostal, " + 
  	   "GECP_DE_LOCALIDAD      descripcion " + 
  	"FROM GENT_CODIGOS_POSTALES C " + 
  	"WHERE GECP_NU_POSTAL > 0 " +
  	"AND GECP_CAES_CD_PROVINCIA = ? " +
  	"AND GECP_CD_CODIGO_POSTAL  = ? ";
     
     private static String FIND =
        "SELECT GECP_NU_POSTAL         id," + 
               "GECP_CAES_CD_PROVINCIA codigoProvincia," + 
               "GECP_CD_CODIGO_POSTAL codigoLocalidad," + 
               "GECP_CD_CODIGO_POSTAL  codigoPostal," +
               "GECP_DE_LOCALIDAD      descripcion" +
        " FROM GENT_CODIGOS_POSTALES C" +
        " WHERE GECP_NU_POSTAL = ? ";
  
     private static String FIND_DESCRIPCION =
        "SELECT MAX(GECP_NU_POSTAL)    id," + 
               "GECP_CAES_CD_PROVINCIA codigoProvincia," + 
               "GECP_CD_CODIGO_POSTAL codigoLocalidad," + 
               "GECP_CD_CODIGO_POSTAL  codigoPostal," +
               "GECP_DE_LOCALIDAD      descripcion" +
        " FROM GENT_CODIGOS_POSTALES C" +
        " WHERE GECP_CAES_CD_PROVINCIA = ? " +
        " AND GECP_CD_CODIGO_POSTAL = ? " +
        " AND GECP_CD_CODIGO_POSTAL = ? " +
        " AND TRIM(GECP_DE_LOCALIDAD) = ? " +
        " GROUP BY GECP_CAES_CD_PROVINCIA," + 
                  "GECP_CD_CODIGO_POSTAL," + 
                  "GECP_CD_CODIGO_POSTAL," +
                  "GECP_DE_LOCALIDAD";
     
     private static String INSERT =
        "INSERT INTO GENT_CODIGOS_POSTALES (" +
               "GECP_NU_POSTAL," + 
               "GECP_CAES_CD_PROVINCIA," + 
               "GECP_CD_CODIGO_POSTAL," +
               "GECP_DE_LOCALIDAD," +
               "GECP_ST_ORDEN," +
               "GECP_CAUS_CD_USUARIO," +
               "GECP_FE_ACTUALIZACION) " +
        "VALUES (?, ?, ?, ?, 1, ?, ?)";
     
     private static String SELECT_LOCALIDAD =
        "SELECT GECP_NU_POSTAL         	id," + 
               "GECP_CAES_CD_PROVINCIA 	codigoProvincia," +
               "GECP_DE_LOCALIDAD 		descCiudad," + 
               "GECP_CD_CODIGO_POSTAL  	codigoPostal," +
               "CAES_DE_ESTADO      		descProvincia" +
        " FROM GENT_CODIGOS_POSTALES C" +
        " INNER JOIN CART_ESTADOS L" +
        " ON (C.GECP_CAES_CD_PROVINCIA = L.CAES_CD_ESTADO)" +
        " WHERE GECP_NU_POSTAL = ? ";
  
     
     public List select() throws SQLException {
        
        List codigosPostales = new ArrayList();
        ProvinciaDAO provinciaDAO = (ProvinciaDAO) useDAO(ProvinciaDAO.class);
        
        PreparedStatement select = prepareStatement(SELECT);
        ResultSet result = select.executeQuery();
        
        while (result.next()) {
           // Preparar datos propios...
           String idPostal = result.getString("id");
           String codigo = result.getString("codigoPostal");
           String descripcion = result.getString("descripcion");
           
           // Preparar datos foraneos...
           String idLocalidad = result.getString("codigoProvincia") + "|" +
                                result.getString("codigoLocalidad");
  
           Provincia provincia = provinciaDAO.find(result.getString("codigoProvincia"));
           
           Localidad localidad = new Localidad();
           localidad.setId(idLocalidad);
           localidad.setCodigo(result.getInt("codigoLocalidad"));
           localidad.setDescripcion(descripcion);
           localidad.setProvincia(provincia);
           
           // Asignar datos al objeto...
           CodigoPostal codigoPostal = new CodigoPostal();
           codigoPostal.setId(idPostal);
           codigoPostal.setCodigo(codigo);
           codigoPostal.setLocalidad(localidad);
  
           codigosPostales.add(codigoPostal);
           
           addObject(codigoPostal.getId(), codigoPostal);
        }
        result.close();
        return codigosPostales;
     }
     
     public List selectByLocalidad(String idcodigo) throws SQLException {
  	   ProvinciaDAO provinciaDAO = (ProvinciaDAO) useDAO(ProvinciaDAO.class);
  	   
  	   List codigosPostales = new ArrayList();
  	      
  	   PreparedStatement select = prepareStatement(SELECT_BY_LOCALIDAD);
  	   select.setInt(1, Integer.parseInt(Utils.split(idcodigo, "\\|")[0]));
  	   select.setInt(2, Integer.parseInt(Utils.split(idcodigo, "\\|")[1]));
  	   ResultSet result = select.executeQuery();
  	      
  	   while (result.next()) {
  		   // Preparar datos propios...
  		   String idPostal = result.getString("id");
  		   String codigo = result.getString("codigoPostal");
  		   String descripcion = result.getString("descripcion");
  	         
  		   // Preparar datos foraneos...
  		   String idLocalidad = result.getString("codigoProvincia") + "|" +
  				                result.getString("codigoLocalidad");
  
  		   Provincia provincia = provinciaDAO.find(result.getString("codigoProvincia"));
               
  		   Localidad localidad = new Localidad();
  		   localidad.setId(idLocalidad);
  		   localidad.setCodigo(result.getInt("codigoLocalidad"));
  		   localidad.setDescripcion(descripcion);
  		   localidad.setProvincia(provincia);
               
  		   // Asignar datos al objeto...
  		   CodigoPostal codigoPostal = new CodigoPostal();
  		   codigoPostal.setId(idPostal);
  		   codigoPostal.setCodigo(codigo);
  		   codigoPostal.setLocalidad(localidad);
  
  		   codigosPostales.add(codigoPostal);
  	         
  		   addObject(codigoPostal.getId(), codigoPostal);
  	   }
  	   result.close();
  	   return codigosPostales;
     }
  
     public CodigoPostal find(String id) throws SQLException {
        CodigoPostal codigoPostal = (CodigoPostal) findObject(id);
  
        if (notFound(id)) {
           ProvinciaDAO provinciaDAO = (ProvinciaDAO) useDAO(ProvinciaDAO.class);
  
           PreparedStatement find = prepareStatement(FIND);
           find.setInt(1, Integer.parseInt(id));
           ResultSet result = find.executeQuery();
  
           if (result.next()) {
              // Preparar datos propios...
              String codigo = result.getString("codigoPostal");
              String descripcion = result.getString("descripcion");
  
              Provincia provincia = provinciaDAO.find(result.getString("codigoProvincia"));
              
              // Preparar datos foraneos...
              String idLocalidad = result.getInt("codigoProvincia") + "|" +
              result.getInt("codigoLocalidad");
  
              Localidad localidad = new Localidad();
              localidad.setId(idLocalidad);
              localidad.setCodigo(result.getInt("codigoLocalidad"));
              localidad.setDescripcion(descripcion);
              localidad.setProvincia(provincia);
              
              // Asignar datos al objeto...
              codigoPostal = new CodigoPostal();
              codigoPostal.setId(id);
              codigoPostal.setCodigo(codigo);
              codigoPostal.setLocalidad(localidad);
              
              addObject(codigoPostal.getId(), codigoPostal);
           }
           result.close();
        }
        return codigoPostal;
     }
  
     public CodigoPostal findDescripcion(String id) throws SQLException {
        CodigoPostal codigoPostal = (CodigoPostal) findObject(id);
  
        if (notFound(id)) {
            ProvinciaDAO provinciaDAO = (ProvinciaDAO) useDAO(ProvinciaDAO.class);
  
           PreparedStatement find = prepareStatement(FIND_DESCRIPCION);
  
  