User Guide - Using the Path Finder feature

Introduction

Debugging is challenging when the path between elements is unknown. Developers may have difficulty isolating the root cause of an issue or understanding how data flows between the elements involved. This lack of visibility can prolong the debugging process and impede efficient resolution. The Path Finder feature helps developers to quickly navigate through large code bases, see the relationship between elements to evaluate the effects of their modifications and find chances for code reuse and optimization. This leads to faster debugging and effective resolution.

The Path Finder feature in default mode will automatically produce a view displaying all the possible paths or the shortest path (depending on the chosen options) from the selected source object to a given destination/target object - this includes any paths between the source object’s child objects and the target object or its child objects. The feature is available at Object level in all scopes. 

A similar feature called Show Paths (renamed as Highlight Path) is available in User Guide - GUI - Menus and Icons

Accessing the feature

To access the Path Finder feature, you must be working at Object level in any scope:

Right click an object in the view and select Path Finder from the contextual menu - this object will then be designated the Source object:

Enabling/disabling the feature for CAST Imaging ≤ 2.11

Click here to expand…

In CAST Imaging ≤ 2.11, the Path Finder feature is disabled by default. To enable it, click the Path Finder slider in the display preferences:

Note that in CAST Imaging 2.9 only, it is necessary to modify a properties file to enable the feature. To do so, locate the following file:

Microsoft Windows
%PROGRAMFILES%\CAST\ImagingSystem\nginx\html\app-config.js

Docker
/opt/imaging/web/dist/app-config.js
This file is located in a running container. To enter the container, run the following command "docker exec -it server bin/sh" and then locate and edit the required file.

Find the following line in the file:

,pathFinder:!1};

Change the 1 to a 0 to enable the feature:

,pathFinder:!0};

Save the file and then restart the following service/container to ensure the change is taken into account:

Microsoft WindowsCAST Imaging - imaging-service
Dockerserver

Using the feature

When the Path Finder option is clicked, the following dialog box is displayed enabling you to choose the Target object for your path from a list of potentials which can be further filtered using the available options (described below):

Click to enlarge

≥ 2.17
2.13 - 2.16

The right hand panel displays the list of potential target objects for the Path Finder operation - by default all objects are listed:

Click to enlarge

If a large number of objects are listed and you know which specific object you want to select as the Target, you can use the search box - this functions on the object’s name and is case sensitive:

If you need to filter the list of objects even further, use the left hand panel - see the sections below which explain these options in more detail:

When you have located the object you want to set as the Target, select it and then click Load and choose:

  • Load all paths- discover and display all possible paths between the Source and Target object
  • Load shortest path - discover and display the shortest path between the Source and Target object

or Find Path (older releases of CAST Imaging):

Filter options available in ≥ 2.17

The filter options can help you to narrow down your choice of target object:

ItemDescription
All objectsThe default filter selection. Will list ALL potential target objects, i.e all those connected in some way to the original source object.
Start pointsWill list only objects that are considered “start points” for transactions involving the original source object.
End pointsWill list only objects that are considered “end points” for transactions involving the original source object.
CallersWill list only objects that are calling the original source object.
CalleesWill list only objects that are called by the original source object.
Select object typesAllows you to filter on specific objects. You can combine multiple object types if required. Click in the field to select an object type from the drop down list: only those object types available in the current application will be listed.

Filter options available 2.13 - 2.16

ItemDescription
Show all paths/shortest path
  • All - discover and display all possible paths between the Source and Target objects
  • Shortest - discover and display the shortest path between the Source and Target objects
Select link type

Choose either Callee or Caller to determine the type of links to other objects that will be taken into account by the Path Finder feature:

  • Choosing Callee will only show other objects that are called by the source object.
  • Choosing Caller will only show other objects that are calling the source object.
Number of hopsDefines the maximum number of objects between the Source and Target objects. By default this is set to 4 and can be changed as required. Note that changing to above 10 can impact performance - the higher the number, the more objects need to be discovered, therefore impacting performance.
Select object types

Allows you to filter on specific objects and is mandatory - i.e. no potential target objects will be displayed unless you specify at least one object type in this field. You can combine multiple object types if required. Click in the field to select an object type from the drop down list: only those object types available in the current application will be listed.

Hide external objects

Use these options to filter the type of objects in the results:

  • Hide external objects > External objects are those that are considered "third-party", i.e. frameworks and libraries rather than custom source code.
  • Main objects only > This option will exclude any sub-objects, for example, those highlighted in yellow below are sub-objects and would not be displayed if the Main objects only option is ticked.

Main objects only

Results

When Load or Find Path is clicked, the view is updated. It will show the Source and Target objects and the paths between them (respecting the options that have been configured):