2010-01-25 3 views
4

나는 LEVEL & 자신의 클래스 Diagramm 사용과 같은 POJO 클래스 호출이 : 즉pojo 클래스 목록을 Jdom 트리로 변환 하시겠습니까?

0,1 
    ------------| 
    |   | 
    |   | 
    \|/   | 
    level-<>------- 

을이하십시오 List<Level>에 데이터베이스에서 모든 레벨을 검색

내가하는 방법이
public class Level 
{ 
private int id; 
private int label; 
private Set<Level> labels; 
private Level parent; 
... 
} 

. 내가 알고리즘을 알고이

LEVEl 1 
+++LEVEL 2 
++++++LEVEL 3 
LEVEL 4 
LEVEL 5 

같은 내가 (당신의 디렉토리 트리와 같은) 트리를 (org.jdom API를 사용하여) JDOM 표현에 대해 원하는

재귀해야합니다.

해결책이 있습니까? JVM에 자바 클래스로 변환 할 수있는 도구가 있습니까?

답변

1

나는 당신이 요구 한 것을 정확하게 수행 할 수있는 라이브러리를 모른다.


수업 수준은 정확하지만 유일한 옵션은 아닙니다. 속성을 추가 할 수도 있습니다 Set<Level> children. parent 링크를 유지할 수 있습니다 (양방향 관계 또는 Many-To-One). 당신의 트리 구조가 더 자연스럽게 만들 수도

... 예를 들어


, 당신은 최대 절전 모드와 같은 ORM를 사용한다면, 당신은 당신이받는 목록 (첫 번째 레벨의 인스턴스를 찾을 수 Hibernate로부터), 당신은 이미 다른 인스턴스를 무시하고, 당신의 나무를 가질 것이다.


그렇지 않으면, 알고리즘 솔루션이 될 수 :

  1. unprocessed 목록
  2. 부모가없는 처리되지 않은 모든 인스턴스를 찾을 수있는 모든 인스턴스를 가지고; 트리에 추가하고 처리되지 않은 상태에서 삭제하십시오. 에
  3. 루프 다음 ​​
    • 는 (나무가 contains의 효율적인 구현이없는 경우,이 임시 설정을 사용할 수 있습니다) 트리에서 부모가 처리되지 않은 모든 인스턴스를 찾을 수 .
    • 트리에 추가하고 처리되지 않은 상태에서 삭제하십시오.