public static <T extends HibernateTreeEntity<T>> void updateTreeNodePosition(T entity) {
assert (entity != null);
TreeNodePosition np = entity.getNodePosition();
if (entity.getParent() != null) {
np.setLevel(entity.getParent().getNodePosition().getLevel() + 1);
if (!entity.getParent().getChildren().contains(entity)) {
np.setOrder(entity.getParent().getChildren().size());
}
} else {
np.setPosition(0, 0);
}
}