Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2011, 22:48
Goomba
 
Fecha de Ingreso: abril-2003
Ubicación: Santiago
Mensajes: 212
Antigüedad: 18 años
Puntos: 0
Generalizar una extencion de clases

Hola a todos sucede que tengo varias clases que extienden de CommonData, no se bien como funciona esto del extends en java ya que soy nuevo en este lenguaje pero me gustria generar una clase generica que permita compartir ciertas funciones sin la necesidad de estar creando una clase para cada objeto ejemplo este porblema lo tengo por lo siguinete estoy trabajando con hibernate y tengo la siguinete duplicidad de codigo

public Collection<AtencionDTO> findByCriteria(
final Criteria criteria) {
return getDAOSupport().findByCriteria(criteria);
}

public AtencionDTO selectByID(final int pk) {
return (AtencionDTO) getDAOSupport().findByPrimaryKey(
AtencionDTO.class, pk);
}

public AtencionDTO add(final AtencionDTO mant) {
if (mant == null) {
throw new IllegalArgumentException("Parameter can't be null");
}
getDAOSupport().save(mant);
return mant;
}

/*********************************************/

public Collection<InsumoDTO> findByCriteria(
final Criteria criteria) {
return getDAOSupport().findByCriteria(criteria);
}

public InsumoDTO selectByID(final int pk) {
return (InsumoDTO) getDAOSupport().findByPrimaryKey(
InsumoDTO.class, pk);
}

public InsumoDTO add(final InsumoDTO mant) {
if (mant == null) {
throw new IllegalArgumentException("Parameter can't be null");
}
getDAOSupport().save(mant);
return mant;
}

si se ven las funciones hacen lo mismo el unico problema es que por devolver tipo de objetos distintos necesito crear cada funcion y su respectiva clase data es por eso que me gustria saber si se puede hacer algo generico que me permita obtener los resultados y hacer la consulta de forma generica??????

public Collection<ObjetoCualquiera > findByCriteria(
final Criteria criteria) {
return getDAOSupport().findByCriteria(criteria);
}

public ObjetoCualquiera selectByID(final int pk) {
return (ObjetoCualquiera ) getDAOSupport().findByPrimaryKey(
ObjetoCualquiera .class, pk);
}

public ObjetoCualquiera add(final InsumoDTO mant) {
if (mant == null) {
throw new IllegalArgumentException("Parameter can't be null");
}
getDAOSupport().save(mant);
return mant;
}