package org.hibernate.examples.model; import java.util.Set; /** * 트리 구조를 가지는 엔티티를 표현하는 인터페이스입니다. * * @author 배성혁 sunghyouk.bae@gmail.com * @since 2013. 11. 27. 오후 4:29 */ public interface HibernateTreeEntity<T extends HibernateTreeEntity<T>> extends PersistentObject { /** * 현재 노드의 부모 노드를 반환합니다. null이면, 현 노드가 최상위 노드 (root node) 입니다. */ T getParent(); /** * 부모 노드를 설정합니다. (null 을 설정하면, 최상위 노드(root node) 가 됩니다.) */ void setParent(T parent); /** * 자식 노드 집합 (Set) */ Set<T> getChildren(); /** * 현재 노드의 트리 구조상의 위치를 나타냅니다. */ TreeNodePosition getNodePosition(); /** * 자식 노드를 추가합니다. */ void addChild(T child); /** * 자식 노드를 삭제합니다. */ void removeChild(T child); }