Introduce overloaded "require" methods to keep track of dependencies.

TemplateApplicationSession allows to invoke require with the
input node as the first parameter, which is then forwarded as
a "requirement" (TODO: rename to dependency).
This commit is contained in:
Fedor Isakov 2020-12-08 11:31:55 +01:00
parent 616c39ae38
commit 4eab445aa9
1 changed files with 239 additions and 16 deletions

View File

@ -1977,10 +1977,20 @@
</node>
</node>
</node>
<node concept="3y3z36" id="4VNF0fT5rEh" role="3clFbw">
<node concept="10Nm6u" id="4VNF0fT5rSG" role="3uHU7w" />
<node concept="37vLTw" id="4VNF0fT5rym" role="3uHU7B">
<ref role="3cqZAo" node="4VNF0fT2ry4" resolve="reqRecorder" />
<node concept="1Wc70l" id="2LxIQemVm$j" role="3clFbw">
<node concept="3y3z36" id="2LxIQemVmZC" role="3uHU7B">
<node concept="37vLTw" id="2LxIQemVo5D" role="3uHU7w">
<ref role="3cqZAo" node="4VNF0fT2B0J" resolve="requirement" />
</node>
<node concept="37vLTw" id="2LxIQemVmLY" role="3uHU7B">
<ref role="3cqZAo" node="4VNF0fT2xd6" resolve="source" />
</node>
</node>
<node concept="3y3z36" id="4VNF0fT5rEh" role="3uHU7w">
<node concept="10Nm6u" id="4VNF0fT5rSG" role="3uHU7w" />
<node concept="37vLTw" id="4VNF0fT5rym" role="3uHU7B">
<ref role="3cqZAo" node="4VNF0fT2ry4" resolve="reqRecorder" />
</node>
</node>
</node>
</node>
@ -2046,19 +2056,31 @@
</node>
</node>
</node>
<node concept="3clFbF" id="4VNF0fT3X0f" role="3cqZAp">
<node concept="2OqwBi" id="4VNF0fT3X0g" role="3clFbG">
<node concept="37vLTw" id="4VNF0fT3X0h" role="2Oq$k0">
<ref role="3cqZAo" node="4VNF0fT2ry4" resolve="reqRecorder" />
<node concept="3clFbJ" id="2LxIQemVp7I" role="3cqZAp">
<node concept="3clFbS" id="2LxIQemVp7K" role="3clFbx">
<node concept="3clFbF" id="4VNF0fT3X0f" role="3cqZAp">
<node concept="2OqwBi" id="4VNF0fT3X0g" role="3clFbG">
<node concept="37vLTw" id="4VNF0fT3X0h" role="2Oq$k0">
<ref role="3cqZAo" node="4VNF0fT2ry4" resolve="reqRecorder" />
</node>
<node concept="liA8E" id="4VNF0fT3X0i" role="2OqNvi">
<ref role="37wK5l" node="4VNF0fT2$Hd" resolve="recordRequirement" />
<node concept="37vLTw" id="4VNF0fT3X0j" role="37wK5m">
<ref role="3cqZAo" node="4VNF0fT3X00" resolve="source" />
</node>
<node concept="37vLTw" id="4VNF0fT4MAO" role="37wK5m">
<ref role="3cqZAo" node="4VNF0fT4LZM" resolve="node" />
</node>
</node>
</node>
</node>
<node concept="liA8E" id="4VNF0fT3X0i" role="2OqNvi">
<ref role="37wK5l" node="4VNF0fT2$Hd" resolve="recordRequirement" />
<node concept="37vLTw" id="4VNF0fT3X0j" role="37wK5m">
<ref role="3cqZAo" node="4VNF0fT3X00" resolve="source" />
</node>
<node concept="37vLTw" id="4VNF0fT4MAO" role="37wK5m">
<ref role="3cqZAo" node="4VNF0fT4LZM" resolve="node" />
</node>
</node>
<node concept="3y3z36" id="2LxIQemVpqK" role="3clFbw">
<node concept="37vLTw" id="2LxIQemVq4a" role="3uHU7w">
<ref role="3cqZAo" node="4VNF0fT4LZM" resolve="node" />
</node>
<node concept="37vLTw" id="2LxIQemVpbV" role="3uHU7B">
<ref role="3cqZAo" node="4VNF0fT3X00" resolve="source" />
</node>
</node>
</node>
@ -2118,6 +2140,64 @@
</node>
</node>
<node concept="2tJIrI" id="5yr01fEei_c" role="jymVt" />
<node concept="3clFb_" id="2LxIQemVPgW" role="jymVt">
<property role="TrG5h" value="require" />
<property role="1EzhhJ" value="false" />
<node concept="37vLTG" id="2LxIQemVR2I" role="3clF46">
<property role="TrG5h" value="input" />
<node concept="3Tqbb2" id="2LxIQemVRTe" role="1tU5fm" />
</node>
<node concept="37vLTG" id="2LxIQemVPgX" role="3clF46">
<property role="TrG5h" value="node" />
<node concept="3Tqbb2" id="2LxIQemVPgY" role="1tU5fm" />
</node>
<node concept="3cqZAl" id="2LxIQemVPgZ" role="3clF45" />
<node concept="3Tm1VV" id="2LxIQemVPh0" role="1B3o_S" />
<node concept="3clFbS" id="2LxIQemVPh1" role="3clF47">
<node concept="3clFbF" id="2LxIQenhMbn" role="3cqZAp">
<node concept="1rXfSq" id="2LxIQenhMbl" role="3clFbG">
<ref role="37wK5l" node="4VNF0fT2w6j" resolve="recordRequirement" />
<node concept="37vLTw" id="2LxIQenhMwq" role="37wK5m">
<ref role="3cqZAo" node="2LxIQemVR2I" resolve="input" />
</node>
<node concept="37vLTw" id="2LxIQenhMFE" role="37wK5m">
<ref role="3cqZAo" node="2LxIQemVPgX" resolve="node" />
</node>
</node>
</node>
<node concept="3clFbF" id="2LxIQemVPh2" role="3cqZAp">
<node concept="2OqwBi" id="2LxIQemVPh3" role="3clFbG">
<node concept="37vLTw" id="2LxIQemVPh4" role="2Oq$k0">
<ref role="3cqZAo" node="7DvO2M9IiOO" resolve="requireHooks" />
</node>
<node concept="2es0OD" id="2LxIQemVPh5" role="2OqNvi">
<node concept="1bVj0M" id="2LxIQemVPh6" role="23t8la">
<node concept="3clFbS" id="2LxIQemVPh7" role="1bW5cS">
<node concept="3clFbF" id="2LxIQemVPh8" role="3cqZAp">
<node concept="2OqwBi" id="2LxIQemVPh9" role="3clFbG">
<node concept="37vLTw" id="2LxIQemVPha" role="2Oq$k0">
<ref role="3cqZAo" node="2LxIQemVPhd" resolve="it" />
</node>
<node concept="liA8E" id="2LxIQemVPhb" role="2OqNvi">
<ref role="37wK5l" node="36tQV5BD$_p" resolve="require" />
<node concept="37vLTw" id="2LxIQemVPhc" role="37wK5m">
<ref role="3cqZAo" node="2LxIQemVPgX" resolve="node" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="2LxIQemVPhd" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="2LxIQemVPhe" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2LxIQemVPgV" role="jymVt" />
<node concept="3clFb_" id="5yr01fEeh7b" role="jymVt">
<property role="TrG5h" value="require" />
<node concept="37vLTG" id="5yr01fEehcn" role="3clF46">
@ -2175,6 +2255,79 @@
</node>
</node>
</node>
<node concept="2tJIrI" id="2LxIQemVUgL" role="jymVt" />
<node concept="3clFb_" id="2LxIQemVSKM" role="jymVt">
<property role="TrG5h" value="require" />
<node concept="37vLTG" id="2LxIQemVVMZ" role="3clF46">
<property role="TrG5h" value="input" />
<node concept="3Tqbb2" id="2LxIQemVWPN" role="1tU5fm" />
</node>
<node concept="37vLTG" id="2LxIQemVSKN" role="3clF46">
<property role="TrG5h" value="nodeRef" />
<node concept="2sp9CU" id="2LxIQemVSKO" role="1tU5fm" />
</node>
<node concept="3cqZAl" id="2LxIQemVSKP" role="3clF45" />
<node concept="3Tm1VV" id="2LxIQemVSKQ" role="1B3o_S" />
<node concept="3clFbS" id="2LxIQemVSKR" role="3clF47">
<node concept="3cpWs8" id="2LxIQemVSKS" role="3cqZAp">
<node concept="3cpWsn" id="2LxIQemVSKT" role="3cpWs9">
<property role="TrG5h" value="node" />
<node concept="3Tqbb2" id="2LxIQemVSKU" role="1tU5fm" />
<node concept="2OqwBi" id="2LxIQemVSKV" role="33vP2m">
<node concept="37vLTw" id="2LxIQemVSKW" role="2Oq$k0">
<ref role="3cqZAo" node="2LxIQemVSKN" resolve="nodeRef" />
</node>
<node concept="Vyspw" id="2LxIQemVSKX" role="2OqNvi">
<node concept="37vLTw" id="2LxIQemVSKY" role="Vysub">
<ref role="3cqZAo" node="5yr01fEe0kS" resolve="repository" />
</node>
</node>
</node>
</node>
</node>
<node concept="3clFbF" id="2LxIQenhNwp" role="3cqZAp">
<node concept="1rXfSq" id="2LxIQenhNwq" role="3clFbG">
<ref role="37wK5l" node="4VNF0fT2w6j" resolve="recordRequirement" />
<node concept="37vLTw" id="2LxIQenhNwr" role="37wK5m">
<ref role="3cqZAo" node="2LxIQemVVMZ" resolve="input" />
</node>
<node concept="37vLTw" id="2LxIQenhNws" role="37wK5m">
<ref role="3cqZAo" node="2LxIQemVSKT" resolve="node" />
</node>
</node>
</node>
<node concept="3clFbF" id="2LxIQemVSKZ" role="3cqZAp">
<node concept="2OqwBi" id="2LxIQemVSL0" role="3clFbG">
<node concept="37vLTw" id="2LxIQemVSL1" role="2Oq$k0">
<ref role="3cqZAo" node="7DvO2M9IiOO" resolve="requireHooks" />
</node>
<node concept="2es0OD" id="2LxIQemVSL2" role="2OqNvi">
<node concept="1bVj0M" id="2LxIQemVSL3" role="23t8la">
<node concept="3clFbS" id="2LxIQemVSL4" role="1bW5cS">
<node concept="3clFbF" id="2LxIQemVSL5" role="3cqZAp">
<node concept="2OqwBi" id="2LxIQemVSL6" role="3clFbG">
<node concept="37vLTw" id="2LxIQemVSL7" role="2Oq$k0">
<ref role="3cqZAo" node="2LxIQemVSLa" resolve="it" />
</node>
<node concept="liA8E" id="2LxIQemVSL8" role="2OqNvi">
<ref role="37wK5l" node="36tQV5BD$_p" resolve="require" />
<node concept="37vLTw" id="2LxIQemVSL9" role="37wK5m">
<ref role="3cqZAo" node="2LxIQemVSKT" resolve="node" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="2LxIQemVSLa" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="2LxIQemVSLb" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="5yr01fEejxj" role="jymVt" />
<node concept="3clFb_" id="12QmIo$ylEC" role="jymVt">
<property role="TrG5h" value="requireAll" />
@ -2231,6 +2384,76 @@
</node>
</node>
<node concept="2tJIrI" id="4MEOIDFgTKR" role="jymVt" />
<node concept="3clFb_" id="2LxIQemVXlq" role="jymVt">
<property role="TrG5h" value="requireAll" />
<property role="1EzhhJ" value="false" />
<node concept="37vLTG" id="2LxIQemVZ9t" role="3clF46">
<property role="TrG5h" value="input" />
<node concept="3Tqbb2" id="2LxIQemW0rn" role="1tU5fm" />
</node>
<node concept="37vLTG" id="2LxIQemVXlr" role="3clF46">
<property role="TrG5h" value="nodes" />
<node concept="A3Dl8" id="2LxIQemVXls" role="1tU5fm">
<node concept="3Tqbb2" id="2LxIQemVXlt" role="A3Ik2" />
</node>
</node>
<node concept="3cqZAl" id="2LxIQemVXlu" role="3clF45" />
<node concept="3Tm1VV" id="2LxIQemVXlv" role="1B3o_S" />
<node concept="3clFbS" id="2LxIQemVXlw" role="3clF47">
<node concept="2Gpval" id="2LxIQemVXlx" role="3cqZAp">
<node concept="3clFbS" id="2LxIQemVXly" role="2LFqv$">
<node concept="3clFbF" id="2LxIQenhNUD" role="3cqZAp">
<node concept="1rXfSq" id="2LxIQenhNUE" role="3clFbG">
<ref role="37wK5l" node="4VNF0fT2w6j" resolve="recordRequirement" />
<node concept="37vLTw" id="2LxIQenhNUF" role="37wK5m">
<ref role="3cqZAo" node="2LxIQemVZ9t" resolve="input" />
</node>
<node concept="2GrUjf" id="2LxIQenhOdw" role="37wK5m">
<ref role="2Gs0qQ" node="2LxIQemVXlL" resolve="n" />
</node>
</node>
</node>
<node concept="3clFbF" id="2LxIQemVXlz" role="3cqZAp">
<node concept="2OqwBi" id="2LxIQemVXl$" role="3clFbG">
<node concept="37vLTw" id="2LxIQemVXl_" role="2Oq$k0">
<ref role="3cqZAo" node="7DvO2M9IiOO" resolve="requireHooks" />
</node>
<node concept="2es0OD" id="2LxIQemVXlA" role="2OqNvi">
<node concept="1bVj0M" id="2LxIQemVXlB" role="23t8la">
<node concept="3clFbS" id="2LxIQemVXlC" role="1bW5cS">
<node concept="3clFbF" id="2LxIQemVXlD" role="3cqZAp">
<node concept="2OqwBi" id="2LxIQemVXlE" role="3clFbG">
<node concept="37vLTw" id="2LxIQemVXlF" role="2Oq$k0">
<ref role="3cqZAo" node="2LxIQemVXlI" resolve="it" />
</node>
<node concept="liA8E" id="2LxIQemVXlG" role="2OqNvi">
<ref role="37wK5l" node="36tQV5BD$_p" resolve="require" />
<node concept="2GrUjf" id="2LxIQemVXlH" role="37wK5m">
<ref role="2Gs0qQ" node="2LxIQemVXlL" resolve="n" />
</node>
</node>
</node>
</node>
</node>
<node concept="Rh6nW" id="2LxIQemVXlI" role="1bW2Oz">
<property role="TrG5h" value="it" />
<node concept="2jxLKc" id="2LxIQemVXlJ" role="1tU5fm" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="37vLTw" id="2LxIQemVXlK" role="2GsD0m">
<ref role="3cqZAo" node="2LxIQemVXlr" resolve="nodes" />
</node>
<node concept="2GrKxI" id="2LxIQemVXlL" role="2Gsz3X">
<property role="TrG5h" value="n" />
</node>
</node>
</node>
</node>
<node concept="2tJIrI" id="2LxIQemVXlp" role="jymVt" />
<node concept="3clFb_" id="5itBwM7VpML" role="jymVt">
<property role="TrG5h" value="expandMacro" />
<property role="1EzhhJ" value="true" />