if (recursive) {
IDirectory directory = (IDirectory) entity;
List<IEntity> entityList = new ArrayList<IEntity>();
entityList.addAll(directory.getSubDirectoriesList());
entityList.addAll(directory.getConfigList());
Collections.sort(entityList, new EntityPositionComparator());
ITreeNode[] nodes = new ITreeNode[entityList.size()];
int index = 0;
for (IEntity child : entityList) {
nodes[index++] = buildNode(child, recursive);
}