Broken inheritance hierarchy when using generic parent class
------------------------------------------------------------
Key: QDOX-205
URL: http://jira.codehaus.org/browse/QDOX-205
Project: QDox
Issue Type: Bug
Affects Versions: 1.10.1
Reporter: Lukasz Dywicki
I have two classes where first (GenericControllerImpl) is some generic purpose
controller with common CRUD methods. Second class (GroupControllerImpl) extends
parent to add some REST methods.
With QDox I can't resolve type variables from GenericControllerImpl. JavaClass
returned after parsing GroupControllerImpl also has no parent class.
Code
{code:lang=java|title=Test code}
JavaDocBuilder builder = new JavaDocBuilder();
JavaSource source = builder.addSource(new
File("GroupControllerImpl.java"));
System.out.println(source.getClasses()[0].getParentClass());
source = builder.addSource(new File("GenericControllerImpl.java"));
System.out.println(source.getClasses()[0].getImplementedInterfaces()[0].asType());
{code}
Classes looks next:
{code:lang=java|title=GroupControllerImpl}
package org.code_house.web;
import org.code_house.dataaccess.GroupDAO;
import org.code_house.domain.Group;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
public class GroupControllerImpl extends
GenericControllerImpl<Group, Long, GroupDAO> {
@Autowired
public void setUserDao(GroupDAO dao) {
this.dao = dao;
}
@RequestMapping("/x")
@ModelAttribute("test")
public Boolean doSomething() {
return null;
}
}
{code}
{code:lang=java|title=GenericControllerImpl.java}
package org.code_house.web;
import java.util.List;
import org.code_house.dataaccess.GenericDAO;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
public abstract class GenericControllerImpl<T, K, D extends GenericDAO<T, K>>
implements GenericController<T, K>, InitializingBean {
protected D dao;
@RequestMapping
public T create(@RequestBody T object) {
dao.create(object);
return object;
}
@RequestMapping
public Boolean update(@PathVariable K id, @RequestBody T object) {
dao.update(object);
return true;
}
@RequestMapping
public T read(@PathVariable K id) {
return dao.readById(id);
}
@RequestMapping
public Boolean remove(@PathVariable K id) {
return dao.deleteById(id);
}
@RequestMapping
public List<T> getAllRecords() {
return dao.getAll();
}
public void afterPropertiesSet() {
Assert.notNull(dao);
}
}
{code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email