SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools



staticTypeRefT(#id, #parent, #encl, #type)

Represents a (qualified) class name in static method calls or static field access. (Added in JT 4.0. Was part of typeRefT in JT 3.0.)

Attributes

#id:
the unique ID assigned to this fact.

#parent: callT, fieldAccessT, methodReferenceT
ID of the static method call or field access performed on this type.

#encl: methodT, constructorT, classInitializerT, fieldT, classT, annotationMemberT
ID of the enclosing declaration.

#type: classT
The type on which the static field access or method invocation is performed.

Sample Java Source

   pckg.TypeName.staticMethodCall();

Its PEF Representation

 packageT(#Package, 'pckg').
 classT(#Class, #Package, 'TypeName', [...]).
 ...
 callT(#Call, #Parent, #Encl, #Expr, [], #method).  // The static method call #Call 
 staticTypeRefT(#Expr, #Call, #Encl, #Class).       // is performed on #Class

AST Specification

ast_node_type_spec(staticTypeRefT,[
     ast_arg(id,      mult(1,1,no ), id,  [staticTypeRefT]),
     ast_arg(parent,  mult(1,1,no ), id,  [callT, fieldAccessT, methodReferenceT]), 
     ast_arg(encl,    mult(1,1,no ), id,  [methodT, constructorT, classInitializerT, fieldT, classT, annotationMemberT]), 
     ast_arg(typeRef, mult(1,1,no ), id,  [classT])
]).
research/jtransformer/api/java/pefs/4.2/statictypereft.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019