Element builder is a mechanism to handling the building process of element.

  • Each builder focuses on only 1 element type.
  • Each builder specifies prerequisites element types so that while building the Pure graph, we can order the builders appropriately.
  • Each builder has 5 passes. NOTE: not all elements require 5-pass building process. But this should give enough flexibility on how elements can be processed.

NOTE: we aim to have the first pass to be relatively simple: just build the basic element, index it and put it in the element tree based on its path. Since this common task is required by many other builder processes, the first pass will be run first and separately from other passes.

Also note that as of right now we will run build pass 2-5 of each element consecutively so there is no opportunity to interleave build passes of different elements. That definitely seems more flexible, but also incur a fair amount of complexity we don't see the need for right now.

Type Parameters

  • T extends V1_PackageableElement