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