constructReference method
Creates a new BoundLoopRefererence
that indexes even deeper than this
one.
For example, suppose a widget's arguments consisted of a map with one key,
"a", whose value was a BoundLoopRefererence
referencing "loop0.foo.bar".
Now suppose that the widget itself has an ArgsReference that references
"args.a.baz". The "args.a" part identifies the aforementioned
BoundLoopReference, and so the resulting reference is actually to
"loop0.foo.bar.baz".
In this example, the BoundLoopReference to "loop0.foo.bar" would have
its constructReference method invoked by the runtime, with ["baz"]
as
the moreParts
argument, so that the resulting BoundLoopReference's
parts is a combination of the original's (["foo", "bar"]
) and the
additional parts provided to the method.
The resolved value (which is what the parts will eventually index into) is maintained in the new object.
Implementation
BoundLoopReference constructReference(List<Object> moreParts) {
return BoundLoopReference(value, parts + moreParts);
}