Templates no eclipse

4 respostas
alexswb

Alguém sabe de um plugin para construir templates do código eclipse. Basicamente eu queria algo mais sofisticado do que o “Code Style / Code templates” que já tem no eclipse.

4 Respostas

_fs

Que tipo de template gostaria de fazer? Quem sabe exista algum plugin para o tipo específico que deseja.

alexswb

quero gerar um esqueleto para toda classe DAO que eu criar. por exemplo, eu crio uma classe e o eclipse já cria o esqueleto como abaixo:
seria legal que ele deixasse eu informar uma variável, por exemplo ${nomeClasse} e %{pacote}.

package ${pacote};

public class ${nomeClasse}DAOOracle extends … implements
${nomeClasse}DAO {

protected Object obterObjeto(ResultSet rs) throws SQLException {
	return null;
}


public ${nomeClasse} obter${nomeClasse}(Long id${nomeClasse}) throws ... {



	Connection conn = null;
	PreparedStatement ps = null;
	ResultSet rs = null;
	${nomeClasse} retorno = null;

	String sql = 
		"SELECT" 
			+ 	", " +
				" " 
		+ "FROM" 
			+ "	" 
		+ "WHERE" 
		+ "	";

	try {
		conn = this
				.createNewConnection(...);
		ps = conn.prepareStatement(sql);

		// parametros ps
		
		rs = ps.executeQuery();

	} catch (SQLException sqle) {

		LogManager.$aplicacaoLog_jdbc_sql.fatal(sqle);
		obterDetalhamentoDeSQLException(sqle);
	} finally {
		closeStatement(ps);
		closeConnection(conn);
		closeResultSet(rs);

	}



	return retorno;

}

}

_fs

Até entendo, mas porque não coloca toda a lógica de criação e execução da query na classe pai?
Ao me deparar com código que escrevo muitas vezes, antes tento descobrir porque o escrevo tanto antes de arranjar uma ferramenta para escrever para mim.

De qualquer forma, criei um template do Eclipse que gera essa classe de exemplo que deu:
package ${pacote};

public class ${nomeClasse}DAOOracle extends BaseDAO implements ${nomeClasse}DAO {
	protected Object obterObjeto(ResultSet rs) throws SQLException {
		return null;
	}
	public ${nomeClasse} obter${nomeClasse}(Long id${nomeClasse}) throws {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		${nomeClasse} retorno = null;
		String sql =
			"SELECT"
			+ ", " +
			" "
			+ "FROM"
			+ " "
			+ "WHERE"
			+ " ";

		try {
			conn = this.createNewConnection();
			ps = conn.prepareStatement(sql);
			// parametros ps
			rs = ps.executeQuery();
		} catch (SQLException sqle) {
			LogManager.${aplicacaoLog_jdbc_sql}.fatal(sqle);
			obterDetalhamentoDeSQLException(sqle);
		} finally {
			closeStatement(ps);
			closeConnection(conn);
			closeResultSet(rs);
		}

		return retorno;
	}
}
Ao inserir o template basta ir apertando "tab" para navegar entre as variáveis opcionais. Como ocorre no Eclipse, ao alterar a primeira variável "nomeClasse", todas as outras do template também serão.
alexswb

É que eu não tenho permissão para alterar a estrutura das classes.

Valeu Lipe! seu template resolveu o problema.

Criado 26 de março de 2008
Ultima resposta 26 de mar. de 2008
Respostas 4
Participantes 2