This diagram
shows the interaction between the Controller
object, the
GotoEvent
object and all the other actors that are used
to process this navigation event.
The Controller
servlet calls the GotoEvent's
processEvent
method.
The GotoEvent
object parses the position string
and build a FieldValues data structure representing the values
of the fields decoded from that position.
The position string uses the following format:
field(0).id : field(0).length : field(0).value - ... - field(n).id : field(n).length : field(n).value
and contains data for all the fields of the current table.
It calls table.mapChildFieldValues
if the event was generated by a parent-child table;
else calls table.getFieldValues
.
Note: the Table's mapChildFieldValues
method is used to
build a new FieldValues
object
that inherits the fields' names from the child table
and the fields' values from the parent table.
Having the FieldValues data for the input position,
the GotoEvent
object try to build
the key position string.
It uses the same format as position string:
field(0).id : field(0).length : field(0).value - ... - field(n).id : field(n).length : field(n).value
but contains data only for the fields that define the key set for the current table.
The GotoEvent
object gets the
DataSourceList
instance and remove the
DataSourceFactory
associated to the current table
and to the current the current request URI from its internal list.
(the current request URI example value:
/bookstore_v1_1_x_20030819/tests/testAUTHOR_list.jsp?AUTHOR
)
The GotoEvent
object instantiates a new
DataSourceFactory
object and stores it into the
DataSourceList
The GotoEvent
object calls the
DataSourceFactory.getCurrent
method passing
to it the key position string to return a new
ResultSetVector
object
to the Controller