ChildType | The type that is inheriting |
ParentType | The type that is being inherited from |
Edge | An edge represents an inheritance relationship. The source end is the child type and the sink is the parent type. |
MarkerType | A marker type is an interface with no user-defined members. |
SystemType | A type created for the system under investigation |
ExternalType | A type used for the system under investigation but not a system type |
SubtypeUse | The subtype relationship created by use of inheritance was required in the code. |
ExternalReuse | A member of a type was used that was an inherited member, and the client accessing the member has no inheritance relationship to either type |
InternalReuse | A type accesses a member that the type has inherited |
Constants | A type that has 1 or more user-defined constant fields and no user-defined methods |
Downcall | An invocation a method that is declared in a descendant type of the type containing the method that made the call. |
Explicit | This relationship between the types is described directly in the code. |
Redundant | This is an explicit relationship connecting to types that are connected by a different path of explicit relationships. |
ImplicitKnown | This relationship is not explicit but is implied by a path of explicit relationships. |
UserDefined | Both types are system types. |
CC | This relationship is between classes (extends). |
CI | This relationship is from a class to an interface (implements). |
II | This relationship is between interfaces (extends). |
Cast | A cast was seen from the parent type to the child type. |
Sideways | The parent type was cast to or from an unrelated ancestor of the child type. |
This | A subtype use of this relationship was seen, where the 'assignment' was to 'this', which implies subtype use of child types. |
Marker | The parent type is a marker type. |
Framework | The parent type is a subtype of an external type. |
Category | There is a sibling of the child type with respect to the parent type for which a subtype use has been seen. |
ConstantsInterface | The parent type is an interface that is a constants interface. |
ConstantsClass | The parent type is a constants class. |
GenericUse | The child type has a subtype use with respect to java.lang.Object, implying a use of generics |
Single | There is a hierarchy with only two members (not counting java.lang.Object) and so only a single relationship. |
Downcall | There is the potential for a downcall. |
UpcallConstructorDefault | The constructor of the child type calls the default constructor of the parent type. Such calls will be implicit. |
UpcallConstructorSuper | The constructor of the child type calls the constructor of the parent type via super. Such calls must be explicit. |
UpcallMethod | A method (or constructor) in the child type calls a method it inherits. No distinction is made between direct and indirect. |
UpcallField | A method (or constructor) in the child type accesses a field it inherits. No distinction is made between direct and indirect. |
DirectExReuseMethod | External reuse was made of a method in the child type that was inherted from the parent type. This applies to interfaces as well as classes. |
IndirectExReuseMethod | This explicit relationship was relied on in order for external reuse of a method but no direct external reuse was seen. |
DirectExReuseField | External reuse was made of a field in the child type that was inherited from the parent type. |
IndirectExReuseField | This explicit relationship was relied on in order for a field to be externally reused but no direct external reuse was seen. |
DirectSubtype | There was subtype use between the child type and parent type was seen. |
IndirectSubtype | This explicit relationship was relied on in order for some other child type use to take place. |
nExplicitCC | Number of explicit userdefined cc edges --- {(UserDefined) and (Explicit) and (CC)} |
nCCUsed | Explicit class edges for which some subtype use or reuse use was seen --- {(UserDefined) and (Explicit) and (CC) and (DirectExReuseField or IndirectExReuseField or DirectExReuseMethod or IndirectExReuseMethod or DirectSubtype or IndirectSubtype or UpcallField or UpcallMethod)} |
pCCUsed | {nCCUsed/nExplicitCC} |
nCCDC | Number of explicit CC edges that have Downcall use --- {(UserDefined) and (Explicit) and (CC) and (Downcall)} |
pCCDC | {nCCDC/nExplicitCC} |
nCCSubtype | Used system CC edges for which subtype use was seen --- {(UserDefined) and (Explicit) and (CC) and (DirectSubtype or IndirectSubtype)} |
pCCSubtype | {nCCSubtype/nCCUsed} |
nCCExreuseNoSubtype | Used system CC edges for which no subtype use was seen, but external reuse use was seen --- {(UserDefined) and (Explicit) and (CC) and (DirectExReuseField or IndirectExReuseField or DirectExReuseMethod or IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype)} |
pCCExreuseNoSubtype | {nCCExreuseNoSubtype/nCCUsed} |
nCCUsedOnlyInRe | Used system CC edges for which only internal reuse was seen --- {(UserDefined) and (Explicit) and (CC) and (not DirectExReuseField) and (not IndirectExReuseField) and (not DirectExReuseMethod) and (not IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype) and (UpcallField or UpcallMethod)} |
pCCUsedOnlyInRe | {nCCUsedOnlyInRe/nCCUsed} |
nCCUnexplSuper | Explict system edges that have no use or explanation but super constructor calls --- {(UserDefined) and (Explicit) and (CC) and (not DirectExReuseField) and (not IndirectExReuseField) and (not DirectExReuseMethod) and (not IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype) and (not UpcallField) and (not UpcallMethod) and (not Downcall) and (not ConstantsClass) and (not ConstantsInterface) and (not Marker) and (not Framework) and (not GenericUse) and (UpcallConstructorSuper)} |
pCCUnexplSuper | {nCCUnexplSuper/nExplicitCC} |
nCCUnexplCategory | Explict system edges that have no use or explanation (incl. super constructor calls) but has category use --- {(UserDefined) and (Explicit) and (CC) and (not DirectExReuseField) and (not IndirectExReuseField) and (not DirectExReuseMethod) and (not IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype) and (not UpcallField) and (not UpcallMethod) and (not Downcall) and (not ConstantsClass) and (not ConstantsInterface) and (not Marker) and (not Framework) and (not GenericUse) and (not UpcallConstructorSuper) and (Category)} |
pCCUnexplCategory | {nCCUnexplCategory/nExplicitCC} |
nCCUnknown | Explicit system class edges that no use or explanation is known (nCCUnused = nCCExplained+nCCUnknown) --- {(UserDefined) and (Explicit) and (CC) and (not DirectExReuseField) and (not IndirectExReuseField) and (not DirectExReuseMethod) and (not IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype) and (not UpcallField) and (not UpcallMethod) and (not Downcall) and (not ConstantsClass) and (not ConstantsInterface) and (not Marker) and (not Framework) and (not GenericUse) and (not UpcallConstructorSuper) and (not Category)} |
pCCUnknown | {nCCUnknown/nExplicitCC} |
nExplicitCI | Explicit edges between user-defined classes and user-defined interfaces --- {(UserDefined) and (Explicit) and (CI)} |
nOnlyCISubtype | Edges between classes and interfaces for which subtype use was seen (the only use possible for such edges) --- {(UserDefined) and (Explicit) and (CI) and (DirectSubtype or IndirectSubtype)} |
pOnlyCISubtype | {nOnlyCISubtype/nExplicitCI} |
nExplainedCI | Edges from class to interface with no subtype use seen, but with one of Framework, Generic, etc (not Category) --- {(UserDefined) and (Explicit) and (CI) and (not DirectSubtype) and (not IndirectSubtype) and (Framework or GenericUse or Marker or ConstantsInterface or ConstantsClass)} |
pExplainedCI | {nExplainedCI/nExplicitCI} |
nCategoryExplCI | Edges for which no subtype use or other explanation was seen, but which have Category --- {(UserDefined) and (Explicit) and (CI) and (not DirectSubtype) and (not IndirectSubtype) and (not Framework) and (not GenericUse) and (not Marker) and (not ConstantsInterface) and (not ConstantsClass) and (Category)} |
pCategoryExplCI | {nCategoryExplCI/nExplicitCI} |
nUnexplainedCI | Edges from class to interface with no subtype use seen or explained (including Category) --- {(UserDefined) and (Explicit) and (CI) and (not DirectSubtype) and (not IndirectSubtype) and (not Framework) and (not GenericUse) and (not Marker) and (not ConstantsInterface) and (not ConstantsClass) and (not Category)} |
pUnexplainedCI | {nUnexplainedCI/nExplicitCI} |
nExplicitII | Explicit edges between user-defined interfaces --- {(UserDefined) and (Explicit) and (II)} |
nIISubtype | Edges between interfaces with at least subtype use --- {(UserDefined) and (Explicit) and (II) and (DirectSubtype or IndirectSubtype)} |
pIISubtype | {nIISubtype/nExplicitII} |
nOnlyIIReuse | Edges between interfaces for which reuse was seen but not subtype --- {(UserDefined) and (Explicit) and (II) and (DirectExReuseField or IndirectExReuseField or DirectExReuseMethod or IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype)} |
pOnlyIIReuse | {nOnlyIIReuse/nExplicitII} |
nExplainedII | Unused edges between interface with some explanation (not category) --- {(UserDefined) and (Explicit) and (II) and (not DirectExReuseField) and (not IndirectExReuseField) and (not DirectExReuseMethod) and (not IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype) and (Framework or GenericUse or Marker or ConstantsInterface or ConstantsClass)} |
pExplainedII | {nExplainedII/nExplicitII} |
nCategoryExplII | Edges for which no use or other explanation has been seen, but which have Category --- {(UserDefined) and (Explicit) and (II) and (not DirectExReuseField) and (not IndirectExReuseField) and (not DirectExReuseMethod) and (not IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype) and (not Framework) and (not GenericUse) and (not Marker) and (not ConstantsInterface) and (not ConstantsClass) and (Category)} |
pCategoryExplII | {nCategoryExplII/nExplicitII} |
nUnexplainedII | Edges between interfaces with no explanation (including Category) --- {(UserDefined) and (Explicit) and (II) and (not DirectExReuseField) and (not IndirectExReuseField) and (not DirectExReuseMethod) and (not IndirectExReuseMethod) and (not DirectSubtype) and (not IndirectSubtype) and (not Framework) and (not GenericUse) and (not Marker) and (not ConstantsInterface) and (not ConstantsClass) and (not Category)} |
pUnexplainedII | {nUnexplainedII/nExplicitII} |