Run with the path you want to analyze as an argument or run inside the project you wish to analyze
If a JSON file is found inside the directory, it will be used instead of creating an AST tree, otherwise it will create one
It will then continue to parse the JSON and calculate the relations and metrics. The JSON creation is done
in order to allow the user to modify the JSON in case there are multiple projects with classes with the same signature.
Property needed by the kotlinx serializer, always Class
id
Long
The unique id of the object (shared among all types)
name
String
The name of the class
fileName
String
The name of the containing file
isInterface
Boolean
A value representing if the class is an interface or not, only appears if its value is true
modifiers
List<String>
The modifiers of the class
container
Long
The id of its container (class or method)
superClass
Long
The id of its superClass
interfaces
List<Long>
The list of ids of its interfaces
isExternal
Boolean
A value representing if the class is from the source project or not, only appears if its value is true
isTypeParameter
Boolean
A value representing if the class ia type parameter or not, only appears if its value is true
instances
List<Long>
The list of ids of its parameter instances. Meaning that when you have A<T> and have an instance somewhere declared of A<String>, T will have String in its parameterInstances
typeParameters
List<Long>
The list of ids of its type parameters
containedFields
List<Long>
The list of ids of its directly contained fields
containedClasses
List<Long>
The list of ids of its directly contained classes
containedMethods
List<Long>
The list of ids of its directly contained methods
accessedFields
List<Long>
The list of ids of its accessed fields inside the initializer of the class
calledMethods
List<Long>
The list of ids of its called methods inside the initializer of the class