When a project is analyzed and stored in the Knowledge Base, the various links between the project's constituent objects and components are also registered. Enlighten is capable of representing this link information in the Graphical View through a series of arrows and abbreviations.
This help section provides a reference guide to all the links that Enlighten is capable of rendering, and the code that causes their creation. The example are organized by language type:
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
|
The following table describes references that are detected by the ASP Analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
|
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:Client/Client link types
Client/Server link types
|
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
|
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
|
References that are detected by the DSP Analyzer and the context in which corresponding links are traced and stored in the Knowledge Base are identical to those for the C++ Analyzer. The exception to this rule is the PROTOTYPE link:
|
The following lists describe references that are detected by the EJB Assistant and the context in which corresponding links are traced and stored in the Knowledge Base: Links between bean and class/interfaces are flagged as "Prototype" and are oriented as follows:
In addition the following links are also traced:
|
The Oracle Forms Analyzer uses different types of links to represent interactions between Oracle Forms/Report Objects and between Oracle Forms/Report Objects and Oracle Server Objects ( below) Links between Oracle Forms Objects use the following types:
Links between Oracle Report Objects use the following types:
Notes
|
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
The following image displays all links identified by the JDO Assistant: |
References that are detected by the analyzer while parsing the JSP Pages are static references (third and third phases):
References that are detected by the analyzer while parsing the JSP page implementation class and/or Tag Handlers are dynamic references (fifth phase): For the dynamic references which are issued from a grep or have the caller located in a JSP script element as a declaration, expression or scriplet, a static link will be created. This new link has almost the same properties as the dynamic link, however the caller can be different. For example, when an object is located in an included file we will have a dynamic reference from the _jspService function of the JSP Page (resp. doTag method of a Tag File) and the object and a static reference from the included JSP File (resp. Tag File) and the object. Note that the main function of the generated servlet/handler class is a pure dynamic object. So, it cannot have static references and we will create them at the function's parent (JSP Page/Tag File) level. The following table summarizes the process of creation of the static links using the dynamic links while parsing generated servlet classes ('Dynamic Caller' are replace by 'Static caller'):
Code sample
References detected by the analyzer when carrying out a pure Java analysis (second phase):
Notes
|
Cobol
For Embedded SQL links, the following are valid for all servers.
For link types CALL PROG and CALL TRANSAC, two limitations exist when the call is in "string" form:
In addition, the following Embedded SQL links are valid for DB2 only:
Notes
JCL
IMS
CICS
For Transactional Code, the following are valid:
|
The following table describes references that are detected by the .NET Analyzer specifically for ASP.NET and the context in which corresponding links are traced and stored in the Knowledge Base:
|
AnalyzerThe following table is a matrix of link types created between object types by the analyzer:
Link Resolution Function Overloading In the case of overloading, resolution is limited to the number of arguments and obvious types (int compare to string for example). However in some cases evaluation of the call does not permit the creation of the correct link. In this case, all possible links will be created: Sample: A class with two methods (of the same name) that both take a parameter: of type int for the first method, and of type float for the second method. Overloaded Operators Not supported Polymorphism Because the Inference Engine is not implemented in this Beta, links toward class methods are created to the apparent type of the object, not the true type. For example (code that generates the link is in bold):
Link Creation Links are identified whatever the construction. For example, if there is a call like Method1().Method2() (where Method1() returns a class that contains a public method Method2(), both links toward Method1() and Method2() are resolved. Implicit Links Implicit links are not created, as such the following will be used:
Link Bookmarks Bookmarks on links are created on the object name - arguments are not taken into account. So for a call like myfunction(param1, param2), the bookmark is set on myfunction. The same is true for function calls from a class. So in a case like a.b.myfunction(param1), the bookmark is set on myfunction. For Generics the same applies but as parameters are parts on the object name (generic instantiation) they are part of the bookmark. So for a call like A<int> the bookmark is set on A<int>. ASP/Web client analysis results: Links
Code examples for linksThe following tables list some examples of how links have been created: USE
MENTION
INCLUDE
CALL
ACCESS
ACCESS and READ
ACCESS and WRITE
REFER
RELY ON and INSTANCE OF
|
Client/Client
Client/Server
Note about Dynamic SQL links found by the inference engine When the inference engine perceives that a string is an SQL string, then this string will not be passed through the Grep search. Note about C/S links found by the inference engine When the inference engine finds a C/S link, the analyzer will place the link at the level of the object that contains the string and not at the level of the exec. There is various information about these links:
Note about links found by the inference engine for virtual functions For virtual functions, the link is found on the function call. For the link, information will be added about the location of the "create". E.g.: STATEMENT "CREATE" IN OBJECT(S) : w_dessin.wof_aire(Line=4,Col=2) Information about other C/C links found by the inference engine (TiggerEVent, Open etc...) There is one link at the string level. The inference engine will gather and store the following information:
|
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
|
|
|
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
ExamplesExample 1 EXECUTE @status = sp_who 'Mary' -- procedure callEXECUTE @cos = dbo.my_fn_cosine @pi_div_8 -- scalar function callINSERT INTO SalesDB.dbo.Sales(price,ratio) EXECUTE dbo.GetSales 'Frebruary', $100 -- procedure callSELECT dbo.ConvertUsrIdToAccount(uid) FROM master..sysusers WHERE name != 'public' -- scalar function call{ CALL sp_who } -- ODBC CALL-escape-sequence of a procedureSELECT { FN LEFT( @@version, 20 ) } -- ODBC FN-escape-sequence for calling LEFT built-in function Example 2 DECLARE @CalledProcName varchar(64)DECLARE @choice int...IF ( @choice = 1 ) SELECT @CalledProcName = 'dbo.compute_sales'ELSE IF ( @choice = 2 ) SELECT @CalledProcName = 'dbo.compute_prices'ELSE SELECT @CalledProcName = 'dbo.compute_everything'EXECUTE @result = @CalledProcName -- 3 links of type "Call" will be issued: towards 'dbo.compute_sales', 'dbo.compute_prices', and 'dbo.compute_everything' Example 3 SELECT * FROM dbo.Sales WHERE ( Price > $100 )SELECT * FROM dbo.GetLogins('floor#1') AS L JOIN master..sysusers AS SU ON (SU.name=L.login_name) WHERE login_name != 'public'SELECT description FROM ::fn_helpcollations() WHERE name LIKE 'Cyrillic[_]General%' -- no link issued from this instructionbecause ::fn_helpcollations() is a built-in table-valued function Example 4 UPDATE CustomersView SET City = 'NY' WHERE Phone LIKE @NyPhonePatternUPDATE dbo.GetCustomers('NY') SET City = 'NY' WHERE Phone LIKE @NyPhonePattern -- same update as above,performed through a table-valued function call Example 5 INSERT SalesAggr SELECT * FROM OldSales WHERE ( Month < @curr_month )BULK INSERT SalesDB.dbo.Sales FROM 'c:\sales_db\backup\sales.tbl' WITH ( FIELDTERMINATOR = ';', FIRE_TRIGGERS ) Example 6 SELECT * INTO dbo.TmpSales FROM dbo.Sales ORDER BY value Example 7 DELETE FROM TmpSales WHERE value < $50DELETE FROM dbo.FilterTmpSales('<',$50) -- same cleanup as above, performed through a table-valued function callTRUNCATE TABLE TmpSales Example 8 DECLARE @TableName varchar(64)DECLARE @ColumnsList varchar(255)DECLARE @table_no int...IF ( @table_no = 1 ) SELECT @TableName = 'Sales', @ColumnsList = 'Store#,Date'ELSE IF ( @table_no = 2 ) SELECT @TableName = 'Titles', @ColumnsList = 'Title,Type,Price'EXECUTE( 'SELECT ' + @ColumnsList + ' FROM dbo.' + @TableName ) -- 2 links of kind "Use(select)" will be issued:one towards 'dbo.Sales' (tagged with 2 columns: Store#,Date), and anotherone towards 'dbo.Titles'(tagged with 3 columns: Title,Type,Price) Example 9 SELECT * FROM OPENXML( @IdXmlDoc, '/ROOT/Customer/Order/OrderDetail', 2 ) WITH TblSchemaDeclCREATE STATISTICS CustStatsOnNames ON dbo.Customers(CompanyName, ContactName) WITH SAMPLE 5 PERCENTUPDATE STATISTICS dbo.Customers( CustStatsOnNames )DROP STATISTICS dbo.Customers.CustStatsOnNamesSET IDENTITY_INSERT dbo.SalesTimestamps ONBULK INSERT dbo.SalesTimestamps FROM 'c:\sales_db\events\sales_ts.tbl'SET IDENTITY_INSERT dbo.SalesTimestamps OFF Example 10 GRANT SELECT ON dbo.Sales TO publicREVOKE SELECT ON dbo.Sales FROM publicDENY INSERT, UPDATE, DELETE ON dbo.Sales TO Sandra, Enzo Example 11 CREATE UNIQUE CLUSTERED INDEX IdxCust_On_City ON dbo.Customers.City -- Link "Rely On" from Customers.City to IdxCust_On_CityREORG reclaim_space dbo.Customers.City IdxCust_On_City WITH resume, time = 120DROP INDEX dbo.Customers.IdxCust_On_CityCREATE TABLE T_Pk( ..., C int not null primary key, ... )CREATE TABLE T_Fk( ..., C int not null foreign key references T_Pk(C) ) -- Link "Rn" from "T_Fk" to "T_Pk"CREATE TABLE T_Fk( ..., C int not null foreign key references T_Pk(C) ON DELETE NO ACTION ) -- Link "Rn" from "T_Fk" to "T_Pk"CREATE TABLE T_Fk( ..., C int not null foreign key references T_Pk(C) ON UPDATE NO ACTION ) -- Link "Rn" from "T_Fk" to "T_Pk"CREATE TABLE T_Fk( ..., C int not null foreign key references T_Pk(C) ON DELETE CASCADE ) -- Link "Rdc" from "T_Fk" to "T_Pk"CREATE TABLE T_Fk( ..., C int not null foreign key references T_Pk(C) ON UPDATE CASCADE ) -- Link "Ruc" from "T_Fk" to "T_Pk" Example 12 ALTER TABLE dbo.Sales ENABLE TRIGGER ALLALTER TABLE dbo.Sales DISABLE TRIGGER TR_Sales_ForU, TR_Sales_InsteadOfD Example 13 DECLARE @ptrval binary(16)...READTEXT pub_info.pr_info @ptrval 4 15 /* Access(readtext) */WRITETEXT pub_info.pr_info @ptrval 'New Moon' /* Access(writetext) */UPDATETEXT pub_info.pr_info @ptrval 15 5 '[NMB]' /* Access(updatetext write) */UPDATETEXT pub_info2_bkp.pr_info /* Access(updatetext write) */ @ptrval 10 20 WITH LOG pub_info.pr_info /* Access(updatetext read) */ @ptrval Example 14 CREATE TABLE T( C1 int NOT NULL )ALTER TABLE T ADD C2 int NOT NULLSELECT * INTO T2 FROM TALTER TABLE T ADD ComputedCol AS ( C1 + C2 )ALTER TABLE T ALTER COLUMN C1 int NULL ALTER TABLE T WITH NOCHECK ADD CONSTRAINT MyConstraint CHECK (C1 != 0)ALTER TABLE T ADD C3 INT IDENTITY CONSTRAINT C_Pk PRIMARY KEYALTER TABLE T ADD C4 INT NULL CONSTRAINT C_Fk REFERENCES dbo.T2(C2)ALTER TABLE T DROP COLUMN ComputedCol, C1, C2 DROP TABLE T, T2 Example 15 LOCK TABLE dbo.Sales IN EXCLUSIVE MODE |
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
|
The following table describes references that are detected by the analyzer and the context in which corresponding links are traced and stored in the Knowledge Base:
|
See Also
Belongs To Links | Link Colors | Expanding Links | Understanding default Layers