Summary: information about the Path Finder feature introduced in CAST Imaging ≥ 2.9.

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

Several similar features are available in the UI: Path FinderShow Paths, Start Points, and End Points and Call Hierarchy - the basic differences are as follows:

  • Show Paths (renamed as Highlight Path) displays all paths between the two selected objects based on callee links .
  • Path Finder not only displays all paths between two selected objects using any link type, but also the shortest path. Additional filtering can also be applied to the results, for example, the ability to:
    • choose the specific link types between the source and target objects
    • choose the number of "hops" between the source and target objects
  • Start Points and End Points​ displays the start points and end points linked to a selected element.
  • Call Hierarchy displays a comprehensive call graph for a chosen element, showcasing its callers, callees, or both.

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:

You can also use a filter on the search to further narrow your results:

Regex pattern

Enabling this option allows you to input the search string using a Regular Expression.

Case sensitivityEnable/disables case sensitive search (disabled by default). This applies to text strings entered in the search field.
Search bySearch by either Name or FullName.
Search by positionSelect as appropriate to specify where in the string the match should occur. By default this is set to Start.

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 types

Allows 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):