in tooling/rib-intellij-plugin/src/main/kotlin/com/uber/intellij/plugin/android/rib/ui/RibHierarchyTreeStructure.kt [33:108]
override fun buildChildren(descriptor: HierarchyNodeDescriptor): Array<Any> {
val descriptors: ArrayList<HierarchyNodeDescriptor> = ArrayList(1)
when (descriptor) {
is RibHierarchyRootNodeDescriptor -> {
descriptor.ribHost.application?.let {
descriptors.add(
RibHierarchyApplicationDescriptor(
myProject,
descriptor,
RibHierarchyUtils.getPsiClass(project, descriptor.ribHost.name),
it,
),
)
}
}
is RibHierarchyApplicationDescriptor -> {
descriptor.ribApplication.activities.forEach { activity ->
descriptors.add(
RibHierarchyActivityDescriptor(
myProject,
descriptor,
RibHierarchyUtils.getPsiClass(project, activity.name),
activity,
),
)
}
}
is RibHierarchyActivityDescriptor -> {
descriptors.add(
RibHierarchyNodeDescriptor(
myProject,
descriptor,
RibHierarchyUtils.getPsiClass(project, descriptor.ribActivity.name),
descriptor.ribActivity.rootRib,
),
)
}
is RibHierarchyNodeDescriptor -> {
descriptor.ribNode.children.forEach { childRibNode ->
descriptors.add(
RibHierarchyNodeDescriptor(
myProject,
descriptor,
RibHierarchyUtils.getPsiClass(project, childRibNode.name),
childRibNode,
),
)
}
}
is RibViewRootNodeDescriptor -> {
descriptor.ribView?.children?.forEach { view ->
descriptors.add(
RibViewNodeDescriptor(
myProject,
RibHierarchyUtils.getPsiClass(project, view.id),
descriptor.ribNode,
view,
),
)
}
}
is RibViewNodeDescriptor -> {
descriptor.ribView?.children?.forEach { view ->
descriptors.add(
RibViewNodeDescriptor(
myProject,
RibHierarchyUtils.getPsiClass(project, view.id),
descriptor.ribNode,
view,
),
)
}
}
}
return descriptors.toTypedArray()
}