override fun compare()

in intellij-plugin/educational-core/src/com/jetbrains/edu/learning/projectView/EduNodeComparator.kt [12:27]


  override fun compare(o1: NodeDescriptor<*>?, o2: NodeDescriptor<*>?): Int {
    val parentNode1 = o1?.parentDescriptor
    val parentNode2 = o2?.parentDescriptor
    if (parentNode1 is TaskNode && parentNode1 == parentNode2) {
      val taskFile1 = o1.getTaskFile()
      val taskFile2 = o2.getTaskFile()
      if (taskFile1 != null && taskFile2 != null) {
        return taskFile1.index.compareTo(taskFile2.index)
      }
    }

    if (o1 is PsiDirectoryNode && o2 !is PsiDirectoryNode) return -1
    if (o1 !is PsiDirectoryNode && o2 is PsiDirectoryNode) return 1

    return AlphaComparator.INSTANCE.compare(o1, o2)
  }