An ontology that represents object-oriented programming languages
CodeOntology
The constructs property relates an executable to the classes it constructs.
constructs
The declares property relates a code element to the elements it declares. For instance, a class is linked to its fields, methods and constructors.
declares
The extends property relates a class, an interface, a type variable or a wildacard to the types it extends.
extends
The hasActualTypeArgument property relates a parameterized type to each of its actual type arguments
has actual type argument
The hasAnnotation property relates a code element to its annotations
has annotation
The hasArgument property relates an executable invocation to each of its actual arguments.
has argument
The hasAssertExpression property relates an assert statement to the boolean expression asserted to be true
has assert expression
The hasBody property relates an executable or a statement to its body.
has body
The hasCatchClause property relates a try statement to the relative catch clauses.
has catch clause
The hasCatchFormalParameter property relates a catch clause to its formal parameters, namely the throwable objects it caughts
has catch formal parameter
The hasCondition property specifies a condition for a statement to be executed.
has condition
The hasConstructor property relates a class to its constructors.
has constructor
The hasDeclaration property relates a variable to the statement it was declared by.
has declaration
The hasDependency property relates a project to its dependencies.
has dependency
The hasElseBranch property relates a if-then-else statement to the statement in the else branch.
has else branch
The hasField property relates a class to its fields
has field
The hasFinallyClause property relates a try statemet to its finally clause.
has finally clause
The hasForInit property relates a basic for statement to each statement expression executed as initialization code, before the first iteration step is performed
has for init
The hasForUpdate property relates a basic for statement to each expression evaluated as update code at the end of every iteration
has for update
The hasFormalTypeParameter property relates a class, an interface, an enumeration, a constructor or a method to the formal type parameters it declares
has formal type parameter
The hasGenericType property relates a parameterized type to the generic type it is a parameterization of
has generic type
The hasInitializer property relates a variable declaration to the expression assigned to the declared variable
has initializer
The hasLeftHandSide property relates a assignement expression to the left hand side expression it contains
has left hand side
The ihasMehtod property relates a class to its methods.
has method
The hasGenericType property relates a modifiable element to its modifiers
has modifier
The hasNextStatement property relates a statement to the next statement to be executed.
next
The hasPackage property relates a class, interface, enum or annotation to the package it is declared by.
has package
The hasParameter property relates a constructor or a method to the formal parameters it declares
has parameter
The hasPreviousStatement property relates a statement to the previous one.
has previous statement
The hasProject property relates a package to the project it belongs to.
has project
The hasResource property relates a try statement to each local variable declared to act as resource for the try statement
has resource
The hasReturnType property relates a method to its return type.
has return type
The hasReturnedExpression property relates a return statement to the returned expression
has returned expression
The hasSubClass property relates a class to its direct sub-classes
has subclass
The hasSubExpression property relates a statement or expression to the expressions it contains.
has subexpression
The hasSubProject property relates a project to its subprojects
has subproject
The hasSubStatement property relates a statment to its sub-statements.
has substatement
The hasSuperBound property relates a lower bounded wildcard to its bouds.
has super bound
The hasSwitchLabel property relates a switch statement to its cases.
has switch label
The hasTarget property relates a method invocation expression to its target.
has target
The hasThenBranch property relates a if-then-else statement to the statement declared in the "then" branch
has then branch
The hasThrownExpression property relates a thrown statement to the expression it throws
has thrown expression
The hasType property relates an expression, a variable or a method to its type.
has type
The hasVariable property relates a for-each statement to the local variable it declares.
has variable
The implements property relates a class to each implemented interface.
implements
The invokes property relates a invocation expression to the invoked executable.
invokes
The isAnnotationOf property relates an annotation to the annotated code element.
is annotation of
The isArrayOf property relates an arrray to the type of its elements at the finest grain. For instance, an array of type "int[][][]" is linked to the type "int". The number of dimensions of the array is specified by the dimensions property.
is array of
The isAssertExpressionOf property relates a boolean expression to the assert statement it is contained in.
is subexpression of
The isBodyOf property relates a block to the exexcutable or statement it is the body of.
is body of
The isCatchClauseOf property relates a catch clause to the corresponding try statement.
is catch clause of
The isConditionOf property relates a if-then-else statement or a loop to its condition.
is condition of
The isConstructedBy property relates a class to the executables that instantiates objects of that class.
is constructed by
The isConstructorOf property relates a constructor to the class it is declared by.
is constructor of
The isDeclaredBy property relates a code element to the element it is declared by.
is declared by
The isDependencyOf property relates a library to the projects that depend on this library.
is dependency of
The isElseBranchOf property relates the statement in an else branch to the corresponding If-then-else statement
is else branch of
The isFieldOf property relates a field to the class, interface or enum it is declared by.
is field of
The isFinallyClauseOf property relates the statement enclosed in a finally clause to the corresponding try statement.
is finally clause of
The isForInitOf property relates an expression executed as initialization code of a basic for statement to the relative for statement.
is for init of
The isForUpdateOf property relates an expression evaluated as update code of a for statement at the end of every iteration, to the corresponding for statement.
is for update of
The isImplementedBy property relates an interface to the classes implementig that interface
is implemented by
The isInitializerOf property relates an expression used to initialize a variable, to the statement it is contained in.
is initializer of
The isLeftHandSideOf property relates an expression that is used as left hand side expression of an assignemnt, to the corresponding assignment expression
is left hand side of
The isMethodOf property relates a method to the class, enum or interface it is declared by.
is method of
The isModifierOf property relates a modifier to the corresponding modifiable element.
is modifier of
The isOverridenBy property relates a method to the ones it is overridden by.
is overridden by
The isPackageOf property relates a package to the types it declares.
is package of
The isParameterOf property relates a parameter to the corresponding executable.
is parameter of
The isProjectOf property relates a project to the packages it contains.
is project of
The isReferencedBy property relates a code element to the elements it is referenced by.
is referenced by
The isReturnTypeOf property relates a type to the methods that return objects of that type.
is return type of
The isReturnedBy property relates a variable to the methods that return that variable.
is returned by
The isReturnedExpressionOf property relates an expression returned by a method to the return statement it is contained in.
is returned expression of
The isSubExpressionOf property relates an expression to its parent expression.
is subexpression of
The isSubProjectOf property relates a project to its parent project.
is subproject of
The isSubStatementOf property relates a statement to the method, constructor or statement it is contained in.
is substatement of
The isSwitchLabelOf property relates a case labeled block or a default block to the corresponding switch statement.
is switch label of
The isTargetOf property relates an expression used as target of a method invocation, to the corresponding method invocation.
is target of
The isThenBranchOf property relates a statement enclosed in a then branch to the corresponding If-then-else statement
is then branch of
The isThrownBy property relates an exception to the executables it is thrown by.
is thrown by
The isThrownExpressionOf property relates a thrown expression, to the throw statement it is contained in.
is thrown expression of
The isTypeOf property relates a type to the elements of that type.
is type of
The overrides property relates a method to the method it overrides.
overrides
The references property relates a method or a constructor to the types, methods, constructors and fields it references.
references
The returns property relates a method to the variable it returns, if any.
returns
The throws property relates a method or a constructor to the exceptions it declares to throw.
throws
Links a project to the content of its build file.
build file
Links a class, enum or interface to its canonical name. For instance, the class Java.lang.String is linked to the string "java.lang.string"
has canonical name
Links an array to the number of its dimensions. As an example, an array of type "int[][][]" has a dimensions count of 3
dimensions
Links a statement to the number of the last line it covers
end line
Links a labeled statement to its label
label
Links a statement to the line it starts in
line
Links a element to its name
name
Links a element to its position
position
the hasReturnDescriptionProperty relates a method to a description of its return value
has return description
Links a class, enum or interface to its simple name. For instance, the simple name of the class java.lang.String is "String"
has simple name
Links a element to its source code
source code
Links a break statement or a continue statement to the label it targets, if any
targeted label
True if an executable accepts a variable number of parameters, false otherwise
is var args
An access modifier
Access Modifier
1
1
The actual argument of a method
Actual Argument
An annotation
Annotation
An anonymous class
Anonymous Class
1
1
An array type
Array Type
1
An assert statement
Assert Statement
1
1
An assignment expression. It involves one of the following operators:
=, *=, /=, %=, +=, -=, <<=, >>=, >>>=, &=, ^=, |=
Assignment Expression
A block
Block Statement
A branching statement, namely a break statement, a continue statement or a return statement
Branching Statement
The BreakStatement class represents a break statement. The break statement has two forms: labeled and unlabeled. In case a break statement is labeled, the label is defined through the targetedLabel property
Break Statement
1
A case-labeled list of statements
Case Labeled Block
A catch block
Catch Block
1
A class
Class
A statement that corresponds to the declaration of a local class
Class Declaration Statement
An expression that creates a class instance, in other words a constructor call
Class Instance Creation Expression
A generic element in source code
Code Element
A class or an enumeration or an interface
Complex Type
A constructor of a Class
Constructor
A continue statement
Continue Statement
A control flow statement, that is a statement that regulates the order in which statements are executed.
Control Flow Statements break up the flow of execution by employing decision making, looping, or branching.
Control Flow Statement
A Decision Making Statement, that is a statement that break up the flow of execution by employing decision making. It can either be a if-then-else statement or a switch statement.
Decision Making Statement
A statement that holds a declaration
Declaration statement
A default-labeled block
Default Labeled Block
1
A do-while statement
Do Statement
An enumeration
Enum
An executable block of code, namely a Method or a Constructor
Executable
1
An invocation of either a method or a constructor.
Executable invocation expression
1
1
A generic expression
Expression
1
An expression statement. that is a statement that wraps an expression
Expression statement
A class field
Field
The declaration of a field
Field Declaration
A finally block
Finally Block
1
1
A for-each statement, also known as enhanced for statement
ForEach Statement
1
A for statement
For Statement
A gradle project
Gradle Project
1
1
A If-then-else statement
If-then-else statement
An interface
Interface
A labeled block of code, namely a case-labeled block or a default-labeled block
Labeled Block
1
A library
Library
A local variable
Local Variable
A local variable declaration
Local Variable Declaration Statement
1
A loop statement.
Loop Statement
A maven project
Maven Project
A Method
Method
A method call
Method Invocation Expression
1
An element that can have a modifier
Modifiable
A modifier
Modifier
A Package
Package
1
A formal parameter
Parameter
1
A parameterized type is a particular parameterization of a generic type denoted by a specified list of type arguments
Parameterized Type
A primitive type
Primitive Type
A project
Project
A return statement
Return Statement
1
1
A generic statement
Statement
1
A switch statement
Switch Statement
A synchronized statement, that is a statement that acquires a mutual-exclusion lock on behalf of the executiing-thread, executes a block, then release the lock.
In java it is of the form:
synchronized <Expression> <Block>
Synchronized Statement
1
A throw statement, that is a statement that causes an exception to be thrown
Throw Statement
1
A try statement
Try Statement
A type
Type
This class defines the actual type argument of a parameterized type
Type Argument
A type variable is an unqualified identifier used as a type. It is introduced by the declaration of a generic class, interface, method, or constructor
Type Variable
1
A variable
Variable
A statement that represents the declaration of a variable
Variable Declaration
1
A while statement
While Statement
A wildcard
Wildcard
The abstract modifier
Abstract
The boolean type
Boolean
The byte type
Byte
The char type
Character
The default modifier
Default
The double type
Double
The final modifier
Final
The float type
Float
The int type
Integer
The long type
Long
The private modifier
Private
The protected modifier
Protected
The public modifier
Public
The short type
Short
The static modifier
Static
The synchronized modifier
Synchronized
The volatile modifier
Volatile