From eeb46201a47293e2b613c1e4ea05675318fe9e33 Mon Sep 17 00:00:00 2001 From: "C. Fuhrman" Date: Thu, 1 Aug 2024 10:41:36 -0400 Subject: [PATCH 1/8] Add TReferenced trait to Reference, generate entities --- .../FamixTypeScriptEntity.class.st | 7 ++++ .../FamixTypeScriptImportingContext.class.st | 2 +- .../FamixTypeScriptReference.class.st | 32 +++++++++++++++++++ .../FamixTypeScriptGenerator.class.st | 2 ++ 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptEntity.class.st b/src/Famix-TypeScript-Entities/FamixTypeScriptEntity.class.st index d54f312..9d17ef6 100644 --- a/src/Famix-TypeScript-Entities/FamixTypeScriptEntity.class.st +++ b/src/Famix-TypeScript-Entities/FamixTypeScriptEntity.class.st @@ -154,6 +154,13 @@ FamixTypeScriptEntity >> isQueryable [ ^ false ] +{ #category : #testing } +FamixTypeScriptEntity >> isReference [ + + + ^ false +] + { #category : #testing } FamixTypeScriptEntity >> isStructuralEntity [ diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptImportingContext.class.st b/src/Famix-TypeScript-Entities/FamixTypeScriptImportingContext.class.st index 96e9096..dfda18d 100644 --- a/src/Famix-TypeScript-Entities/FamixTypeScriptImportingContext.class.st +++ b/src/Famix-TypeScript-Entities/FamixTypeScriptImportingContext.class.st @@ -264,7 +264,7 @@ FamixTypeScriptImportingContext >> importProperty [ FamixTypeScriptImportingContext >> importReference [ - ^ self importConcreteEntity: (self class fm3ClassNamed: #Reference) + ^ self importAssociation: (self class fm3ClassNamed: #Reference) ] { #category : #importing } diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptReference.class.st b/src/Famix-TypeScript-Entities/FamixTypeScriptReference.class.st index 390fbcc..a92f410 100644 --- a/src/Famix-TypeScript-Entities/FamixTypeScriptReference.class.st +++ b/src/Famix-TypeScript-Entities/FamixTypeScriptReference.class.st @@ -1,6 +1,38 @@ +" +## Relations +====================== + +### Association source +| Relation | Origin | Opposite | Type | Comment | +|---| +| `referencer` | `FamixTReference` | `outgoingReferences` | `FamixTWithReferences` | Source entity making the reference. from-side of the association| + +### Association target +| Relation | Origin | Opposite | Type | Comment | +|---| +| `referredType` | `FamixTReference` | `incomingReferences` | `FamixTReferenceable` | Target entity referenced. to-side of the association| + +### Other +| Relation | Origin | Opposite | Type | Comment | +|---| +| `next` | `FamixTAssociation` | `previous` | `FamixTAssociation` | Next association in an ordered collection of associations. Currently not supported by the Moose importer| +| `previous` | `FamixTAssociation` | `next` | `FamixTAssociation` | Previous association in an ordered collection of associations. Currently not supported by the Moose importer| +| `sourceAnchor` | `FamixTSourceEntity` | `element` | `FamixTSourceAnchor` | SourceAnchor entity linking to the original source code for this entity| + + +## Properties +====================== + +| Name | Type | Default value | Comment | +|---| +| `isStub` | `Boolean` | false | Flag true if the entity attributes are incomplete, either because the entity is missing or not imported.| + +" Class { #name : #FamixTypeScriptReference, #superclass : #FamixTypeScriptEntity, + #traits : 'FamixTReference', + #classTraits : 'FamixTReference classTrait', #category : #'Famix-TypeScript-Entities-Entities' } diff --git a/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st b/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st index ed86b8e..e83d376 100644 --- a/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st +++ b/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st @@ -376,6 +376,8 @@ FamixTypeScriptGenerator >> defineHierarchy [ primitiveType --|> type. primitiveType --|> #TPrimitiveType. + + reference --|> #TReference. sourcedEntity --|> #TWithComments. From 7604c54b9ecf726029e9c55f99e808cb2aad87b7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 1 Aug 2024 14:42:51 +0000 Subject: [PATCH 2/8] Update docs for branch Reference-TReference --- doc-uml/FamixTypeScript-traits.puml | 2 +- doc-uml/FamixTypeScript-traits.svg | 2 +- doc-uml/FamixTypeScript.puml | 2 +- doc-uml/FamixTypeScript.svg | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc-uml/FamixTypeScript-traits.puml b/doc-uml/FamixTypeScript-traits.puml index 6a52ed8..08f7e06 100644 --- a/doc-uml/FamixTypeScript-traits.puml +++ b/doc-uml/FamixTypeScript-traits.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class EnumValue <<(C,white)>> #CCFFFF { } class TImport <<(T,white)External>> #FFFFCC { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TCanImplement <<(T,white)External>> #FFFFCC { } class Concretization <<(C,white)>> #CCFFFF { } class TMethod <<(T,white)External>> #FFFFCC { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class TComment <<(T,white)External>> #FFFFCC { String content } class ScriptEntity <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class ParameterType <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TParametricEntity <<(T,white)External>> #FFFFCC { } class Namespace <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class TWithComments <<(T,white)External>> #FFFFCC { Boolean hasComments Number numberOfComments } class ParametricFunction <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TTypedEntity <<(T,white)External>> #FFFFCC { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TLocalVariable <<(T,white)External>> #FFFFCC { } class TInvocation <<(T,white)External>> #FFFFCC { } class ArrowFunction <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Property <<(C,white)>> #CCFFFF { Boolean isOptional Boolean isJavaScriptPrivate Boolean readOnly Boolean isDefinitelyAssigned } class ParametricClass <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class TEnumValue <<(T,white)External>> #FFFFCC { } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class THasKind <<(T,white)External>> #FFFFCC { Boolean isConstant Boolean isGetter Boolean isSetter Boolean isConstructor String kind } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class SourceLanguage <<(C,white)>> #CCFFFF { } class TWithTypes <<(T,white)External>> #FFFFCC { } class Invocation <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfLocallyDefinedMethods Number totalNumberOfSubclasses Number numberOfAttributesInherited Number numberOfMethodsInherited Number numberOfMethodsOverridden Number numberOfMethodsInHierarchy } class ParametricMethod <<(C,white)>> #CCFFFF { } class TClass <<(T,white)External>> #FFFFCC { Boolean isTestCase Number weightOfAClass } class TType <<(T,white)External>> #FFFFCC { } class Enum <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPackageVisibility Boolean isPrivate Boolean isPublic String visibility Boolean isProtected } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class Alias <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class Function <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfEmptyLinesOfText Number numberOfFolders Number totalNumberOfLinesOfText Number numberOfFiles } class TParameter <<(T,white)External>> #FFFFCC { } class Variable <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class TImplementable <<(T,white)External>> #FFFFCC { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class TImportable <<(T,white)External>> #FFFFCC { } class TFile <<(T,white)External>> #FFFFCC { Number averageNumberOfCharactersPerLine Number numberOfBytes Number numberOfCharacters Number numberOfKiloBytes Number totalNumberOfLinesOfText Number numberOfEmptyLinesOfText } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class NamedEntity <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class ScopingEntity <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class TImplementation <<(T,white)External>> #FFFFCC { } class Method <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Model <<(C,white)External>> #FFFFCC { Number numberOfModelClasses Number numberOfLinesOfCodePerMethod Number numberOfModelMethods Number numberOfClassesPerPackage Number numberOfLinesOfCode Number averageCyclomaticComplexity Number numberOfMethods Number numberOfClasses Number numberOfLinesOfCodePerPackage Number numberOfLinesOfCodePerClass Number numberOfClassesPerPackage } class TConcretization <<(T,white)External>> #FFFFCC { } class StructuralEntity <<(C,white)>> #CCFFFF { } class TEnum <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number weightedMethodCount Number numberOfAbstractMethods Number numberOfMethods Number tightClassCohesion } class Entity <<(C,white)External>> #FFFFCC { Number numberOfTags Boolean isTagged Boolean isDead } class TWithInheritances <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel Number numberOfDirectSubclasses Number numberOfSubclasses Number subclassHierarchyDepth } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class SourcedEntity <<(C,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number endPos Number startPos } class SourceAnchor <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number numberOfExternalClients Number numberOfChildren Number fanOut Number fanIn Number numberOfInternalProviders Number numberOfInternalClients Number numberOfExternalProviders Number numberOfDeadChildren Boolean isDead Boolean isRoot } class TFunction <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class TSourceEntity <<(T,white)External>> #FFFFCC { Boolean containsReplicas Number numberOfLinesOfCodeWithMoreThanOneCharacter String sourceText Boolean isStub Number duplicationRate Number numberOfLinesOfCode } class File <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class JSDoc <<(C,white)>> #CCFFFF { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TNamespace <<(T,white)External>> #FFFFCC { } class TInheritance <<(T,white)External>> #FFFFCC { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom3 Number lcom2 } class TAccess <<(T,white)External>> #FFFFCC { Boolean isReadWriteUnknown Boolean isWrite Boolean isRead } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TWithAccesses <<(T,white)External>> #FFFFCC { } StructuralEntity <|-- EnumValue Entity <|-- Concretization SourceAnchor <|-- IndexedFileAnchor NamedEntity <|-- Folder ScopingEntity <|-- ScriptEntity Variable <|-- implicitVariable NamedEntity <|-- Decorator Type <|-- ParameterType ContainerEntity <|-- BehaviouralEntity ScopingEntity <|-- Namespace Type <|-- Class Function <|-- ParametricFunction Entity <|-- ParameterConcretization Type <|-- Interface SourcedEntity <|-- Comment BehaviouralEntity <|-- ArrowFunction StructuralEntity <|-- Property Class <|-- ParametricClass Method <|-- Accessor Entity <|-- SourceLanguage Entity <|-- Entity Entity <|-- Invocation Method <|-- ParametricMethod ScriptEntity <|-- Module NamedEntity <|-- Alias Type <|-- Enum BehaviouralEntity <|-- Function StructuralEntity <|-- Variable Interface <|-- ParametricInterface Model <|-- FamixTypeScriptModel SourceAnchor <|-- SourceTextAnchor Entity <|-- Inheritance Entity <|-- Implementation ArrowFunction <|-- ParametricArrowFunction SourcedEntity <|-- NamedEntity NamedEntity <|-- ContainerEntity Type <|-- PrimitiveType Entity <|-- Reference ContainerEntity <|-- ScopingEntity Entity <|-- ImportClause ContainerEntity <|-- Type BehaviouralEntity <|-- Method Entity <|-- Access AbstractGroup <|-- Model NamedEntity <|-- StructuralEntity Object <|-- Entity Entity <|-- SourcedEntity Entity <|-- SourceAnchor NamedEntity <|-- File StructuralEntity <|-- Parameter SourcedEntity <|-- JSDoc TEnumValue <|.. EnumValue TAssociation <|.. TImport TType <|.. TGenericParameterType THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TConcretization <|.. Concretization TIndexedFileNavigation <|.. IndexedFileAnchor TFolder <|.. Folder TWithStatements <|.. ScriptEntity TEntityMetaLevelDependency <|.. TComment TGenericParameterType <|.. ParameterType TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType TImportable <|.. Decorator TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TParametricEntity <|.. ParametricFunction TParameterConcretization <|.. ParameterConcretization TImplementable <|.. Interface TStructuralEntity <|.. TLocalVariable TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TAssociation <|.. TInvocation THasSignature <|.. TInvocation TComment <|.. Comment TDefinedInModule <|.. ArrowFunction TFunction <|.. ArrowFunction TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TParametricEntity <|.. ParametricClass TStructuralEntity <|.. TEnumValue TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TType <|.. TConcreteParameterType TSourceLanguage <|.. SourceLanguage TParametricEntity <|.. ParametricMethod THasSignature <|.. Invocation TInvocation <|.. Invocation TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TEntityMetaLevelDependency <|.. TType TWithTypes <|.. TWithClasses TImportable <|.. Alias TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TImportable <|.. Variable TLocalVariable <|.. Variable TStructuralEntity <|.. TParameter TFileSystemEntity <|.. TFolder TParametricEntity <|.. ParametricInterface TEntityCreator <|.. FamixTypeScriptModel TEnum <|.. Enum TImportable <|.. Enum THasImmediateSource <|.. SourceTextAnchor TInheritance <|.. Inheritance TImplementation <|.. Implementation TParametricEntity <|.. ParametricArrowFunction TFileSystemEntity <|.. TFile TAssociation <|.. TParameterConcretization TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TPrimitiveType <|.. PrimitiveType TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TImport <|.. ImportClause TSourceAnchor <|.. THasImmediateSource TWithTypes <|.. TWithInterfaces TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TAssociation <|.. TImplementation TAccess <|.. Access TAssociation <|.. TConcretization TStructuralEntity <|.. StructuralEntity TType <|.. TEnum TWithEnumValues <|.. TEnum TStructuralEntity <|.. TAttribute TFileAnchor <|.. TIndexedFileNavigation TSourceEntity <|.. SourcedEntity TWithComments <|.. SourcedEntity TSourceAnchor <|.. SourceAnchor THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TFile <|.. File TParameter <|.. Parameter TType <|.. TPrimitiveType TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TAssociation <|.. TInheritance TAssociation <|.. TAccess TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TInvocable "candidates*" -- "incomingInvocations*" TInvocation TWithAttributes "parentType" o-- "attributes*" TAttribute TParametricEntity "concreteEntity" -- "genericization" TConcretization TSourceAnchor "sourceAnchor" -- "element" TSourceEntity TInvocation "outgoingInvocations*" -- "sender" TWithInvocations TComment "comments*" --o "commentedEntity" TWithComments TWithInheritances "superclass" -- "subInheritances*" TInheritance Decorator "decorators*" -- "decoratedEntity" NamedEntity TGenericParameterType "genericParameters*" -- "genericEntities*" TParametricEntity TMethod "methods*" --o "parentType" TWithMethods TWithFunctions "functionOwner" o-- "functions*" TFunction TParametricEntity "genericEntity" -- "concretizations*" TConcretization TTypedEntity "typedEntities*" -- "declaredType" TType TWithInheritances "subclass" -- "superInheritances*" TInheritance TConcreteParameterType "concreteParameter" -- "generics*" TParameterConcretization TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TInvocation "receivingInvocations*" -- "receiver" TInvocationsReceiver TAccess "accesses*" -- "accessor" TWithAccesses TImplementable "interface" -- "implementations*" TImplementation TImport "incomingImports*" -- "importedEntity" TImportable TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization TWithLocalVariables "parentBehaviouralEntity" o-- "localVariables*" TLocalVariable TImport "outgoingImports*" -- "importingEntity" TWithImports TWithTypes "typeContainer" o-- "types*" TType Model -- "sourceLanguage" TSourceLanguage TGenericParameterType "genericParameter" -- "concretizations*" TParameterConcretization @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TMethod <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class TEnumValue <<(T,white)External>> #FFFFCC { } class TCanImplement <<(T,white)External>> #FFFFCC { } class TImplementable <<(T,white)External>> #FFFFCC { } class JSDoc <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class Alias <<(C,white)>> #CCFFFF { } class Entity <<(C,white)External>> #FFFFCC { Boolean isTagged Number numberOfTags Boolean isDead } class TEntityCreator <<(T,white)>> #CCFFFF { } class TNamespace <<(T,white)External>> #FFFFCC { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class TAccess <<(T,white)External>> #FFFFCC { Boolean isWrite Boolean isReadWriteUnknown Boolean isRead } class TImplementation <<(T,white)External>> #FFFFCC { } class ParametricFunction <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class TInheritance <<(T,white)External>> #FFFFCC { } class Class <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class TInvocable <<(T,white)External>> #FFFFCC { } class EnumValue <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class ParametricMethod <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TWithAccesses <<(T,white)External>> #FFFFCC { } class TFunction <<(T,white)External>> #FFFFCC { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class Concretization <<(C,white)>> #CCFFFF { } class TEnum <<(T,white)External>> #FFFFCC { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class TReference <<(T,white)External>> #FFFFCC { } class TWithTypes <<(T,white)External>> #FFFFCC { } class ContainerEntity <<(C,white)>> #CCFFFF { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number numberOfSubclasses Number hierarchyNestingLevel Number numberOfDirectSubclasses Number subclassHierarchyDepth } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Boolean isDead Number numberOfChildren Number numberOfInternalProviders Boolean isRoot Number numberOfExternalClients Number fanIn Number numberOfExternalProviders Number numberOfInternalClients Number numberOfDeadChildren Number fanOut } class TComment <<(T,white)External>> #FFFFCC { String content } class TSourceEntity <<(T,white)External>> #FFFFCC { Number numberOfLinesOfCodeWithMoreThanOneCharacter Number numberOfLinesOfCode Number duplicationRate Boolean containsReplicas Boolean isStub String sourceText } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom2 Number lcom3 } class Accessor <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class ArrowFunction <<(C,white)>> #CCFFFF { } class TFile <<(T,white)External>> #FFFFCC { Number numberOfBytes Number totalNumberOfLinesOfText Number numberOfEmptyLinesOfText Number averageNumberOfCharactersPerLine Number numberOfCharacters Number numberOfKiloBytes } class Implementation <<(C,white)>> #CCFFFF { } class THasKind <<(T,white)External>> #FFFFCC { Boolean isSetter Boolean isConstructor Boolean isConstant String kind Boolean isGetter } class ParametricClass <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class ParameterType <<(C,white)>> #CCFFFF { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class Variable <<(C,white)>> #CCFFFF { } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPrivate Boolean isPublic Boolean isPackageVisibility Boolean isProtected String visibility } class TImportable <<(T,white)External>> #FFFFCC { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TParameter <<(T,white)External>> #FFFFCC { } class Invocation <<(C,white)>> #CCFFFF { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class Model <<(C,white)External>> #FFFFCC { Number numberOfClassesPerPackage Number numberOfLinesOfCodePerPackage Number numberOfMethods Number numberOfModelClasses Number averageCyclomaticComplexity Number numberOfModelMethods Number numberOfClassesPerPackage Number numberOfLinesOfCodePerClass Number numberOfClasses Number numberOfLinesOfCode Number numberOfLinesOfCodePerMethod } class ScriptEntity <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class TWithImports <<(T,white)External>> #FFFFCC { } class Access <<(C,white)>> #CCFFFF { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number weightedMethodCount Number numberOfAbstractMethods Number tightClassCohesion Number numberOfMethods } class TWithComments <<(T,white)External>> #FFFFCC { Number numberOfComments Boolean hasComments } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean readOnly Boolean isDefinitelyAssigned Boolean isOptional } class TTypedEntity <<(T,white)External>> #FFFFCC { } class Namespace <<(C,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class TParametricEntity <<(T,white)External>> #FFFFCC { } class NamedEntity <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class TType <<(T,white)External>> #FFFFCC { } class Method <<(C,white)>> #CCFFFF { } class TInvocation <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsOverridden Number totalNumberOfSubclasses Number numberOfMethodsInHierarchy Number numberOfMethodsInherited Number numberOfAttributesInherited Number numberOfLocallyDefinedMethods } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfFiles Number numberOfFolders Number numberOfEmptyLinesOfText } class TWithFunctions <<(T,white)External>> #FFFFCC { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TConcretization <<(T,white)External>> #FFFFCC { } class TImport <<(T,white)External>> #FFFFCC { } class ParametricInterface <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } ArrowFunction <|-- ParametricArrowFunction ContainerEntity <|-- Type SourcedEntity <|-- JSDoc StructuralEntity <|-- Parameter NamedEntity <|-- Alias Object <|-- Entity Type <|-- Interface Function <|-- ParametricFunction Entity <|-- SourceLanguage Variable <|-- implicitVariable Entity <|-- SourceAnchor ScriptEntity <|-- Module Entity <|-- Inheritance Entity <|-- SourcedEntity NamedEntity <|-- File Type <|-- Class BehaviouralEntity <|-- Function NamedEntity <|-- Decorator StructuralEntity <|-- EnumValue Entity <|-- Entity ContainerEntity <|-- ScopingEntity Type <|-- Enum Entity <|-- Reference Model <|-- FamixTypeScriptModel Entity <|-- Concretization ContainerEntity <|-- BehaviouralEntity Method <|-- ParametricMethod NamedEntity <|-- ContainerEntity Method <|-- Accessor BehaviouralEntity <|-- ArrowFunction SourcedEntity <|-- Comment Entity <|-- Implementation Class <|-- ParametricClass Entity <|-- ImportClause Type <|-- ParameterType SourceAnchor <|-- SourceTextAnchor Entity <|-- Invocation AbstractGroup <|-- Model StructuralEntity <|-- Variable ScopingEntity <|-- ScriptEntity Entity <|-- Access Type <|-- PrimitiveType StructuralEntity <|-- Property ScopingEntity <|-- Namespace SourcedEntity <|-- NamedEntity NamedEntity <|-- Folder BehaviouralEntity <|-- Method Entity <|-- ParameterConcretization SourceAnchor <|-- IndexedFileAnchor Interface <|-- ParametricInterface NamedEntity <|-- StructuralEntity TParametricEntity <|.. ParametricArrowFunction THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TAssociation <|.. TParameterConcretization TStructuralEntity <|.. TEnumValue TParameter <|.. Parameter TSourceAnchor <|.. THasImmediateSource TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TImportable <|.. Alias TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TStructuralEntity <|.. TLocalVariable TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TAssociation <|.. TAccess TAssociation <|.. TImplementation TParametricEntity <|.. ParametricFunction TSourceLanguage <|.. SourceLanguage TImplementable <|.. Interface TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TSourceAnchor <|.. SourceAnchor TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TInheritance <|.. Inheritance TFile <|.. File TAssociation <|.. TInheritance TSourceEntity <|.. SourcedEntity TWithComments <|.. SourcedEntity TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TWithInvocations <|.. Class TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TClassMetrics <|.. Class TImportable <|.. Decorator TEnumValue <|.. EnumValue TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TEnum <|.. Enum TImportable <|.. Enum TReference <|.. Reference TStructuralEntity <|.. TAttribute THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TType <|.. TConcreteParameterType TEntityCreator <|.. FamixTypeScriptModel TConcretization <|.. Concretization TType <|.. TEnum TWithEnumValues <|.. TEnum TParametricEntity <|.. ParametricMethod TFileAnchor <|.. TIndexedFileNavigation TAssociation <|.. TReference TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TEntityMetaLevelDependency <|.. TComment TDefinedInModule <|.. ArrowFunction TFunction <|.. ArrowFunction TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TComment <|.. Comment TFileSystemEntity <|.. TFile TImplementation <|.. Implementation TWithTypes <|.. TWithClasses TParametricEntity <|.. ParametricClass TImport <|.. ImportClause TGenericParameterType <|.. ParameterType TStructuralEntity <|.. TParameter TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType THasSignature <|.. Invocation TInvocation <|.. Invocation THasImmediateSource <|.. SourceTextAnchor TImportable <|.. Variable TLocalVariable <|.. Variable TWithStatements <|.. ScriptEntity TAccess <|.. Access TPrimitiveType <|.. PrimitiveType TType <|.. TPrimitiveType TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TFolder <|.. Folder TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TType <|.. TGenericParameterType TEntityMetaLevelDependency <|.. TType TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TAssociation <|.. TInvocation THasSignature <|.. TInvocation TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TParameterConcretization <|.. ParameterConcretization TFileSystemEntity <|.. TFolder TIndexedFileNavigation <|.. IndexedFileAnchor TAssociation <|.. TConcretization TParametricEntity <|.. ParametricInterface TStructuralEntity <|.. StructuralEntity TAssociation <|.. TImport TWithTypes <|.. TWithInterfaces TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation TWithInvocations "sender" -- "outgoingInvocations*" TInvocation TFunction "functions*" --o "functionOwner" TWithFunctions TWithImports "importingEntity" -- "outgoingImports*" TImport TImportable "importedEntity" -- "incomingImports*" TImport TConcreteParameterType "concreteParameters*" -- "concreteEntities*" TParametricEntity TInvocable "candidates*" -- "incomingInvocations*" TInvocation TComment "comments*" --o "commentedEntity" TWithComments TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType Model -- "sourceLanguage" TSourceLanguage Decorator "decorators*" -- "decoratedEntity" NamedEntity TInheritance "subInheritances*" -- "superclass" TWithInheritances TParametricEntity "concreteEntity" -- "genericization" TConcretization TMethod "methods*" --o "parentType" TWithMethods TInheritance "superInheritances*" -- "subclass" TWithInheritances TSourceEntity "element" -- "sourceAnchor" TSourceAnchor TParametricEntity "genericEntity" -- "concretizations*" TConcretization TTypedEntity "typedEntities*" -- "declaredType" TType TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TAccess "accesses*" -- "accessor" TWithAccesses TWithAttributes "parentType" o-- "attributes*" TAttribute TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TImplementable "interface" -- "implementations*" TImplementation TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TWithTypes "typeContainer" o-- "types*" TType TParametricEntity "genericEntities*" -- "genericParameters*" TGenericParameterType @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript-traits.svg b/doc-uml/FamixTypeScript-traits.svg index 58efe2c..fb828af 100644 --- a/doc-uml/FamixTypeScript-traits.svg +++ b/doc-uml/FamixTypeScript-traits.svg @@ -1 +1 @@ -EnumValue«External»TImport«External»TGenericParameterType«External»TCanImplementConcretization«External»TMethodIndexedFileAnchorFolder«External»TWithFunctions«External»TCommentString contentScriptEntityimplicitVariableDecoratorString expression«External»TSourceAnchorNumber lineCountParameterTypeBehaviouralEntity«External»TParametricEntityNamespaceClass«External»TInvocableInterface«External»TWithCommentsBoolean hasCommentsNumber numberOfCommentsParametricFunction«External»TWithLocalVariables«External»TWithAttributesNumber numberOfAttributesParameterConcretization«External»TTypedEntity«External»THasSignatureString signature«External»TLocalVariable«External»TInvocationArrowFunctionCommentBoolean isJSDocPropertyBoolean isOptionalBoolean isJavaScriptPrivateBoolean readOnlyBoolean isDefinitelyAssignedParametricClassAccessor«External»TEnumValue«External»TStructuralEntity«External»THasKindBoolean isConstantBoolean isGetterBoolean isSetterBoolean isConstructorString kind«External»TWithStatementsNumber numberOfStatements«External»TConcreteParameterTypeSourceLanguage«External»TWithTypesInvocation«External»EntityNumber numberOfTagsBoolean isTaggedBoolean isDeadTClassMetricsNumber numberOfLocallyDefinedMethodsNumber totalNumberOfSubclassesNumber numberOfAttributesInheritedNumber numberOfMethodsInheritedNumber numberOfMethodsOverriddenNumber numberOfMethodsInHierarchyParametricMethod«External»TClassBoolean isTestCaseNumber weightOfAClass«External»TTypeEnumModule«External»THasVisibilityBoolean isPackageVisibilityBoolean isPrivateBoolean isPublicString visibilityBoolean isProtected«External»TWithClassesNumber numberOfClassesAlias«External»TSourceLanguageFunction«External»TFolderNumber numberOfEmptyLinesOfTextNumber numberOfFoldersNumber totalNumberOfLinesOfTextNumber numberOfFiles«External»TParameterVariableParametricInterfaceTEntityCreator«External»TImplementableFamixTypeScriptModelSourceTextAnchorInheritanceImplementationParametricArrowFunction«External»TImportable«External»TFileNumber averageNumberOfCharactersPerLineNumber numberOfBytesNumber numberOfCharactersNumber numberOfKiloBytesNumber totalNumberOfLinesOfTextNumber numberOfEmptyLinesOfText«External»TParameterConcretizationNamedEntityContainerEntityPrimitiveTypeReference«External»TDefinedInModuleScopingEntityImportClause«External»THasImmediateSourceString sourceTWithInterfacesType«External»TImplementationMethodAccess«External»ModelNumber numberOfModelClassesNumber numberOfLinesOfCodePerMethodNumber numberOfModelMethodsNumber numberOfClassesPerPackageNumber numberOfLinesOfCodeNumber averageCyclomaticComplexityNumber numberOfMethodsNumber numberOfClassesNumber numberOfLinesOfCodePerPackageNumber numberOfLinesOfCodePerClassNumber numberOfClassesPerPackage«External»TConcretizationStructuralEntity«External»TEnum«External»TWithMethodsNumber weightedMethodCountNumber numberOfAbstractMethodsNumber numberOfMethodsNumber tightClassCohesion«External»TWithInheritancesNumber hierarchyNestingLevelNumber numberOfDirectSubclassesNumber numberOfSubclassesNumber subclassHierarchyDepth«External»TAttributeNumber hierarchyNestingLevel«External»TWithInvocationsNumber numberOfOutgoingInvocationsSourcedEntity«External»TIndexedFileNavigationNumber endPosNumber startPosSourceAnchor«External»TEntityMetaLevelDependencyNumber numberOfExternalClientsNumber numberOfChildrenNumber fanOutNumber fanInNumber numberOfInternalProvidersNumber numberOfInternalClientsNumber numberOfExternalProvidersNumber numberOfDeadChildrenBoolean isDeadBoolean isRoot«External»TFunction«External»TWithImports«External»TSourceEntityBoolean containsReplicasNumber numberOfLinesOfCodeWithMoreThanOneCharacterString sourceTextBoolean isStubNumber duplicationRateNumber numberOfLinesOfCodeFileParameter«External»TPrimitiveType«External»TNamedEntityString nameJSDoc«External»TInvocationsReceiver«External»TNamespace«External»TInheritance«External»TCanBeClassSideBoolean isClassSide«External»TLCOMMetricsNumber lcom3Number lcom2«External»TAccessBoolean isReadWriteUnknownBoolean isWriteBoolean isRead«External»TCanBeAbstractBoolean isAbstract«External»TWithAccessesAbstractGroupObjectTAssociationTMethodMetricsTWithImplicitVariablesTWithParametersTAccessibleTWithReferencesTReferenceableTFileSystemEntityTWithEnumValuesTFileAnchordecorators*decoratedEntityimplementingClassinterfaceImplementations*candidates*incomingInvocations*parentTypeattributes*concreteEntitygenericizationgenericEntityconcretizations*sourceAnchorelementoutgoingInvocations*sendercomments*commentedEntitysuperclasssubInheritances*subclasssuperInheritances*genericParameters*genericEntities*methods*parentTypefunctionOwnerfunctions*typedEntities*declaredTypeconcreteParametergenerics*concreteEntities*concreteParameters*receivingInvocations*receiveraccesses*accessorinterfaceimplementations*incomingImports*importedEntityparameterConcretizations*concretizations*parentBehaviouralEntitylocalVariables*outgoingImports*importingEntitytypeContainertypes*sourceLanguagegenericParameterconcretizations* \ No newline at end of file +«External»THasSignatureString signature«External»TMethodType«External»TParameterConcretization«External»TEnumValue«External»TCanImplement«External»TImplementableJSDocParameter«External»THasImmediateSourceString source«External»TStructuralEntityAliasEntityBoolean isTaggedNumber numberOfTagsBoolean isDeadTEntityCreator«External»TNamespace«External»TInvocationsReceiver«External»TLocalVariableInterface«External»TClassNumber weightOfAClassBoolean isTestCase«External»TAccessBoolean isWriteBoolean isReadWriteUnknownBoolean isRead«External»TImplementationParametricFunctionSourceLanguageimplicitVariableSourceAnchorModuleInheritanceSourcedEntityFile«External»TInheritanceClass«External»TSourceLanguageDecoratorString expression«External»TWithStatementsNumber numberOfStatements«External»TInvocableEnumValueFunctionScopingEntity«External»TWithAttributesNumber numberOfAttributesParametricMethodEnumReference«External»TAttributeNumber hierarchyNestingLevelFamixTypeScriptModelBehaviouralEntity«External»TWithAccesses«External»TFunction«External»TConcreteParameterTypeConcretization«External»TEnum«External»TIndexedFileNavigationNumber startPosNumber endPos«External»TReference«External»TWithTypesContainerEntity«External»TWithInheritancesNumber numberOfSubclassesNumber hierarchyNestingLevelNumber numberOfDirectSubclassesNumber subclassHierarchyDepth«External»TEntityMetaLevelDependencyBoolean isDeadNumber numberOfChildrenNumber numberOfInternalProvidersBoolean isRootNumber numberOfExternalClientsNumber fanInNumber numberOfExternalProvidersNumber numberOfInternalClientsNumber numberOfDeadChildrenNumber fanOut«External»TCommentString content«External»TSourceEntityNumber numberOfLinesOfCodeWithMoreThanOneCharacterNumber numberOfLinesOfCodeNumber duplicationRateBoolean containsReplicasBoolean isStubString sourceText«External»TLCOMMetricsNumber lcom2Number lcom3AccessorCommentBoolean isJSDocArrowFunction«External»TFileNumber numberOfBytesNumber totalNumberOfLinesOfTextNumber numberOfEmptyLinesOfTextNumber averageNumberOfCharactersPerLineNumber numberOfCharactersNumber numberOfKiloBytesImplementation«External»THasKindBoolean isSetterBoolean isConstructorBoolean isConstantString kindBoolean isGetterParametricClassImportClause«External»TWithClassesNumber numberOfClassesParameterType«External»TNamedEntityString nameVariable«External»THasVisibilityBoolean isPrivateBoolean isPublicBoolean isPackageVisibilityBoolean isProtectedString visibility«External»TImportableSourceTextAnchor«External»TWithLocalVariables«External»TParameterInvocation«External»TDefinedInModule«External»ModelNumber numberOfClassesPerPackageNumber numberOfLinesOfCodePerPackageNumber numberOfMethodsNumber numberOfModelClassesNumber averageCyclomaticComplexityNumber numberOfModelMethodsNumber numberOfClassesPerPackageNumber numberOfLinesOfCodePerClassNumber numberOfClassesNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerMethodScriptEntityPrimitiveType«External»TWithImportsAccess«External»TPrimitiveType«External»TWithMethodsNumber weightedMethodCountNumber numberOfAbstractMethodsNumber tightClassCohesionNumber numberOfMethods«External»TWithCommentsNumber numberOfCommentsBoolean hasCommentsPropertyBoolean isJavaScriptPrivateBoolean readOnlyBoolean isDefinitelyAssignedBoolean isOptional«External»TTypedEntityNamespace«External»TWithInvocationsNumber numberOfOutgoingInvocations«External»TParametricEntityNamedEntityFolder«External»TTypeMethod«External»TInvocation«External»TClassMetricsNumber numberOfMethodsOverriddenNumber totalNumberOfSubclassesNumber numberOfMethodsInHierarchyNumber numberOfMethodsInheritedNumber numberOfAttributesInheritedNumber numberOfLocallyDefinedMethods«External»TSourceAnchorNumber lineCount«External»TGenericParameterType«External»TCanBeClassSideBoolean isClassSideParameterConcretizationIndexedFileAnchor«External»TFolderNumber totalNumberOfLinesOfTextNumber numberOfFilesNumber numberOfFoldersNumber numberOfEmptyLinesOfText«External»TWithFunctions«External»TCanBeAbstractBoolean isAbstract«External»TConcretization«External»TImportParametricInterfaceStructuralEntityTWithInterfacesParametricArrowFunctionObjectAbstractGroupTMethodMetricsTWithImplicitVariablesTWithParametersTAssociationTAccessibleTWithReferencesTWithEnumValuesTFileAnchorTFileSystemEntityTReferenceabledecorators*decoratedEntityreceiverreceivingInvocations*senderoutgoingInvocations*functions*functionOwnerimportingEntityoutgoingImports*importedEntityincomingImports*concreteParameters*concreteEntities*candidates*incomingInvocations*comments*commentedEntityconcretizations*genericParametersourceLanguagesubInheritances*superclasssuperInheritances*subclassconcreteEntitygenericizationgenericEntityconcretizations*methods*parentTypeelementsourceAnchortypedEntities*declaredTypeimplementingClassinterfaceImplementations*accesses*accessorparentTypeattributes*parameterConcretizations*concretizations*generics*concreteParameterinterfaceimplementations*localVariables*parentBehaviouralEntitytypeContainertypes*genericEntities*genericParameters* \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.puml b/doc-uml/FamixTypeScript.puml index 6be9d69..8be3200 100644 --- a/doc-uml/FamixTypeScript.puml +++ b/doc-uml/FamixTypeScript.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class ScriptEntity <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class ContainerEntity <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Variable <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean isDefinitelyAssigned Boolean isOptional Boolean readOnly } class Interface <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } Type <|-- PrimitiveType Type <|-- ParameterType ScopingEntity <|-- ScriptEntity NamedEntity <|-- File SourceAnchor <|-- SourceTextAnchor Entity <|-- SourcedEntity ContainerEntity <|-- ScopingEntity Type <|-- Enum Entity <|-- SourceLanguage NamedEntity <|-- Decorator NamedEntity <|-- ContainerEntity BehaviouralEntity <|-- ArrowFunction Entity <|-- ImportClause SourceAnchor <|-- IndexedFileAnchor Variable <|-- implicitVariable SourcedEntity <|-- Comment StructuralEntity <|-- Variable Entity <|-- Concretization NamedEntity <|-- StructuralEntity Entity <|-- Access NamedEntity <|-- Alias ContainerEntity <|-- BehaviouralEntity Entity <|-- Implementation Type <|-- Class BehaviouralEntity <|-- Function Entity <|-- Inheritance Class <|-- ParametricClass Entity <|-- Invocation Interface <|-- ParametricInterface ScopingEntity <|-- Namespace SourcedEntity <|-- JSDoc NamedEntity <|-- Folder Method <|-- Accessor Function <|-- ParametricFunction StructuralEntity <|-- Property Type <|-- Interface SourcedEntity <|-- NamedEntity ArrowFunction <|-- ParametricArrowFunction ContainerEntity <|-- Type Entity <|-- ParameterConcretization Entity <|-- Reference Method <|-- ParametricMethod ScriptEntity <|-- Module BehaviouralEntity <|-- Method StructuralEntity <|-- EnumValue Entity <|-- SourceAnchor StructuralEntity <|-- Parameter TWithInterfaces <|.. ContainerEntity TEntityCreator <|.. FamixTypeScriptModel TClassMetrics <|.. Class Decorator "decorators*" -- "decoratedEntity" NamedEntity @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class PrimitiveType <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Entity <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean readOnly Boolean isOptional Boolean isDefinitelyAssigned } class ContainerEntity <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TEntityCreator <<(T,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } Entity <|-- SourceLanguage Type <|-- PrimitiveType Entity <|-- ImportClause ScopingEntity <|-- ScriptEntity SourceAnchor <|-- SourceTextAnchor BehaviouralEntity <|-- ArrowFunction SourcedEntity <|-- Comment Entity <|-- Access Entity <|-- ParameterConcretization SourcedEntity <|-- NamedEntity Interface <|-- ParametricInterface NamedEntity <|-- Folder SourceAnchor <|-- IndexedFileAnchor ScopingEntity <|-- Namespace Type <|-- Enum Method <|-- ParametricMethod Type <|-- Class Method <|-- Accessor StructuralEntity <|-- Variable NamedEntity <|-- File Entity <|-- Concretization Class <|-- ParametricClass ScriptEntity <|-- Module Entity <|-- Inheritance Entity <|-- Invocation Variable <|-- implicitVariable BehaviouralEntity <|-- Function BehaviouralEntity <|-- Method SourcedEntity <|-- JSDoc StructuralEntity <|-- Parameter NamedEntity <|-- ContainerEntity NamedEntity <|-- Alias StructuralEntity <|-- Property NamedEntity <|-- StructuralEntity Type <|-- Interface ContainerEntity <|-- Type Entity <|-- Implementation Type <|-- ParameterType Entity <|-- Reference StructuralEntity <|-- EnumValue ContainerEntity <|-- BehaviouralEntity Function <|-- ParametricFunction Entity <|-- SourceAnchor ContainerEntity <|-- ScopingEntity NamedEntity <|-- Decorator Entity <|-- SourcedEntity ArrowFunction <|-- ParametricArrowFunction TClassMetrics <|.. Class TEntityCreator <|.. FamixTypeScriptModel TWithInterfaces <|.. ContainerEntity NamedEntity "decoratedEntity" -- "decorators*" Decorator @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.svg b/doc-uml/FamixTypeScript.svg index 6991a23..f2f3e6c 100644 --- a/doc-uml/FamixTypeScript.svg +++ b/doc-uml/FamixTypeScript.svg @@ -1 +1 @@ -ScriptEntityFileTWithInterfacesSourceTextAnchorScopingEntitySourcedEntityEnumSourceLanguageDecoratorString expressionContainerEntityArrowFunctionImportClauseimplicitVariableCommentBoolean isJSDocVariableIndexedFileAnchorConcretizationEntityStructuralEntityAccessAliasFamixTypeScriptModelTClassMetricsBehaviouralEntityImplementationClassInheritanceFunctionParametricClassInvocationParametricInterfaceNamespaceJSDocParametricFunctionAccessorFolderTEntityCreatorPropertyBoolean isJavaScriptPrivateBoolean isDefinitelyAssignedBoolean isOptionalBoolean readOnlyInterfaceNamedEntityParametricArrowFunctionParameterConcretizationTypeReferenceParametricMethodModuleEnumValueMethodSourceAnchorParameterPrimitiveTypeParameterTypedecorators*decoratedEntity \ No newline at end of file +PrimitiveTypeImportClauseScriptEntityArrowFunctionSourceTextAnchorCommentBoolean isJSDocEntityAccessParameterConcretizationNamedEntityParametricInterfaceIndexedFileAnchorFolderParametricMethodClassEnumNamespaceAccessorFileVariableFamixTypeScriptModelConcretizationModuleParametricClassTClassMetricsInheritanceInvocationimplicitVariableFunctionMethodJSDocParameterTWithInterfacesPropertyBoolean isJavaScriptPrivateBoolean readOnlyBoolean isOptionalBoolean isDefinitelyAssignedContainerEntityAliasStructuralEntityInterfaceImplementationTypeParameterTypeReferenceEnumValueBehaviouralEntityParametricFunctionSourceAnchorScopingEntityDecoratorString expressionTEntityCreatorSourcedEntityParametricArrowFunctionSourceLanguagedecoratedEntitydecorators* \ No newline at end of file From a8fc76f62c1a0bea85903f48e2550f5fa6cb0b13 Mon Sep 17 00:00:00 2001 From: "C. Fuhrman" Date: Thu, 1 Aug 2024 14:05:20 -0400 Subject: [PATCH 3/8] Move method to extensions package --- .../FamixTWithSourceLanguages.extension.st | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename src/{Famix-TypeScript-Generator => Famix-TypeScript-Extensions}/FamixTWithSourceLanguages.extension.st (81%) diff --git a/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st b/src/Famix-TypeScript-Extensions/FamixTWithSourceLanguages.extension.st similarity index 81% rename from src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st rename to src/Famix-TypeScript-Extensions/FamixTWithSourceLanguages.extension.st index 8a7b66a..f7836aa 100644 --- a/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st +++ b/src/Famix-TypeScript-Extensions/FamixTWithSourceLanguages.extension.st @@ -1,8 +1,8 @@ -Extension { #name : #FamixTWithSourceLanguages } - -{ #category : #'*Famix-TypeScript-Generator' } -FamixTWithSourceLanguages >> formattedSourceText [ - ^ self sourceLanguage - ifNotNil: [ :language | language format: self sourceText from: self ] - ifNil: [ self sourceText ] -] +Extension { #name : #FamixTWithSourceLanguages } + +{ #category : #'*Famix-TypeScript-Extensions' } +FamixTWithSourceLanguages >> formattedSourceText [ + ^ self sourceLanguage + ifNotNil: [ :language | language format: self sourceText from: self ] + ifNil: [ self sourceText ] +] From b014c503c9e555e24ec3878181c94531f6909a0e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 1 Aug 2024 18:06:21 +0000 Subject: [PATCH 4/8] Update docs for branch Reference-TReference --- doc-uml/FamixTypeScript-traits.puml | 2 +- doc-uml/FamixTypeScript-traits.svg | 2 +- doc-uml/FamixTypeScript.puml | 2 +- doc-uml/FamixTypeScript.svg | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc-uml/FamixTypeScript-traits.puml b/doc-uml/FamixTypeScript-traits.puml index 08f7e06..75467da 100644 --- a/doc-uml/FamixTypeScript-traits.puml +++ b/doc-uml/FamixTypeScript-traits.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TMethod <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class TEnumValue <<(T,white)External>> #FFFFCC { } class TCanImplement <<(T,white)External>> #FFFFCC { } class TImplementable <<(T,white)External>> #FFFFCC { } class JSDoc <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class Alias <<(C,white)>> #CCFFFF { } class Entity <<(C,white)External>> #FFFFCC { Boolean isTagged Number numberOfTags Boolean isDead } class TEntityCreator <<(T,white)>> #CCFFFF { } class TNamespace <<(T,white)External>> #FFFFCC { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class TAccess <<(T,white)External>> #FFFFCC { Boolean isWrite Boolean isReadWriteUnknown Boolean isRead } class TImplementation <<(T,white)External>> #FFFFCC { } class ParametricFunction <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class TInheritance <<(T,white)External>> #FFFFCC { } class Class <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class TInvocable <<(T,white)External>> #FFFFCC { } class EnumValue <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class ParametricMethod <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TWithAccesses <<(T,white)External>> #FFFFCC { } class TFunction <<(T,white)External>> #FFFFCC { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class Concretization <<(C,white)>> #CCFFFF { } class TEnum <<(T,white)External>> #FFFFCC { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class TReference <<(T,white)External>> #FFFFCC { } class TWithTypes <<(T,white)External>> #FFFFCC { } class ContainerEntity <<(C,white)>> #CCFFFF { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number numberOfSubclasses Number hierarchyNestingLevel Number numberOfDirectSubclasses Number subclassHierarchyDepth } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Boolean isDead Number numberOfChildren Number numberOfInternalProviders Boolean isRoot Number numberOfExternalClients Number fanIn Number numberOfExternalProviders Number numberOfInternalClients Number numberOfDeadChildren Number fanOut } class TComment <<(T,white)External>> #FFFFCC { String content } class TSourceEntity <<(T,white)External>> #FFFFCC { Number numberOfLinesOfCodeWithMoreThanOneCharacter Number numberOfLinesOfCode Number duplicationRate Boolean containsReplicas Boolean isStub String sourceText } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom2 Number lcom3 } class Accessor <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class ArrowFunction <<(C,white)>> #CCFFFF { } class TFile <<(T,white)External>> #FFFFCC { Number numberOfBytes Number totalNumberOfLinesOfText Number numberOfEmptyLinesOfText Number averageNumberOfCharactersPerLine Number numberOfCharacters Number numberOfKiloBytes } class Implementation <<(C,white)>> #CCFFFF { } class THasKind <<(T,white)External>> #FFFFCC { Boolean isSetter Boolean isConstructor Boolean isConstant String kind Boolean isGetter } class ParametricClass <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class ParameterType <<(C,white)>> #CCFFFF { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class Variable <<(C,white)>> #CCFFFF { } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPrivate Boolean isPublic Boolean isPackageVisibility Boolean isProtected String visibility } class TImportable <<(T,white)External>> #FFFFCC { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TParameter <<(T,white)External>> #FFFFCC { } class Invocation <<(C,white)>> #CCFFFF { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class Model <<(C,white)External>> #FFFFCC { Number numberOfClassesPerPackage Number numberOfLinesOfCodePerPackage Number numberOfMethods Number numberOfModelClasses Number averageCyclomaticComplexity Number numberOfModelMethods Number numberOfClassesPerPackage Number numberOfLinesOfCodePerClass Number numberOfClasses Number numberOfLinesOfCode Number numberOfLinesOfCodePerMethod } class ScriptEntity <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class TWithImports <<(T,white)External>> #FFFFCC { } class Access <<(C,white)>> #CCFFFF { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number weightedMethodCount Number numberOfAbstractMethods Number tightClassCohesion Number numberOfMethods } class TWithComments <<(T,white)External>> #FFFFCC { Number numberOfComments Boolean hasComments } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean readOnly Boolean isDefinitelyAssigned Boolean isOptional } class TTypedEntity <<(T,white)External>> #FFFFCC { } class Namespace <<(C,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class TParametricEntity <<(T,white)External>> #FFFFCC { } class NamedEntity <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class TType <<(T,white)External>> #FFFFCC { } class Method <<(C,white)>> #CCFFFF { } class TInvocation <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsOverridden Number totalNumberOfSubclasses Number numberOfMethodsInHierarchy Number numberOfMethodsInherited Number numberOfAttributesInherited Number numberOfLocallyDefinedMethods } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfFiles Number numberOfFolders Number numberOfEmptyLinesOfText } class TWithFunctions <<(T,white)External>> #FFFFCC { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TConcretization <<(T,white)External>> #FFFFCC { } class TImport <<(T,white)External>> #FFFFCC { } class ParametricInterface <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } ArrowFunction <|-- ParametricArrowFunction ContainerEntity <|-- Type SourcedEntity <|-- JSDoc StructuralEntity <|-- Parameter NamedEntity <|-- Alias Object <|-- Entity Type <|-- Interface Function <|-- ParametricFunction Entity <|-- SourceLanguage Variable <|-- implicitVariable Entity <|-- SourceAnchor ScriptEntity <|-- Module Entity <|-- Inheritance Entity <|-- SourcedEntity NamedEntity <|-- File Type <|-- Class BehaviouralEntity <|-- Function NamedEntity <|-- Decorator StructuralEntity <|-- EnumValue Entity <|-- Entity ContainerEntity <|-- ScopingEntity Type <|-- Enum Entity <|-- Reference Model <|-- FamixTypeScriptModel Entity <|-- Concretization ContainerEntity <|-- BehaviouralEntity Method <|-- ParametricMethod NamedEntity <|-- ContainerEntity Method <|-- Accessor BehaviouralEntity <|-- ArrowFunction SourcedEntity <|-- Comment Entity <|-- Implementation Class <|-- ParametricClass Entity <|-- ImportClause Type <|-- ParameterType SourceAnchor <|-- SourceTextAnchor Entity <|-- Invocation AbstractGroup <|-- Model StructuralEntity <|-- Variable ScopingEntity <|-- ScriptEntity Entity <|-- Access Type <|-- PrimitiveType StructuralEntity <|-- Property ScopingEntity <|-- Namespace SourcedEntity <|-- NamedEntity NamedEntity <|-- Folder BehaviouralEntity <|-- Method Entity <|-- ParameterConcretization SourceAnchor <|-- IndexedFileAnchor Interface <|-- ParametricInterface NamedEntity <|-- StructuralEntity TParametricEntity <|.. ParametricArrowFunction THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TAssociation <|.. TParameterConcretization TStructuralEntity <|.. TEnumValue TParameter <|.. Parameter TSourceAnchor <|.. THasImmediateSource TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TImportable <|.. Alias TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TStructuralEntity <|.. TLocalVariable TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TAssociation <|.. TAccess TAssociation <|.. TImplementation TParametricEntity <|.. ParametricFunction TSourceLanguage <|.. SourceLanguage TImplementable <|.. Interface TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TSourceAnchor <|.. SourceAnchor TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TInheritance <|.. Inheritance TFile <|.. File TAssociation <|.. TInheritance TSourceEntity <|.. SourcedEntity TWithComments <|.. SourcedEntity TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TWithInvocations <|.. Class TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TClassMetrics <|.. Class TImportable <|.. Decorator TEnumValue <|.. EnumValue TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TEnum <|.. Enum TImportable <|.. Enum TReference <|.. Reference TStructuralEntity <|.. TAttribute THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TType <|.. TConcreteParameterType TEntityCreator <|.. FamixTypeScriptModel TConcretization <|.. Concretization TType <|.. TEnum TWithEnumValues <|.. TEnum TParametricEntity <|.. ParametricMethod TFileAnchor <|.. TIndexedFileNavigation TAssociation <|.. TReference TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TEntityMetaLevelDependency <|.. TComment TDefinedInModule <|.. ArrowFunction TFunction <|.. ArrowFunction TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TComment <|.. Comment TFileSystemEntity <|.. TFile TImplementation <|.. Implementation TWithTypes <|.. TWithClasses TParametricEntity <|.. ParametricClass TImport <|.. ImportClause TGenericParameterType <|.. ParameterType TStructuralEntity <|.. TParameter TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType THasSignature <|.. Invocation TInvocation <|.. Invocation THasImmediateSource <|.. SourceTextAnchor TImportable <|.. Variable TLocalVariable <|.. Variable TWithStatements <|.. ScriptEntity TAccess <|.. Access TPrimitiveType <|.. PrimitiveType TType <|.. TPrimitiveType TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TFolder <|.. Folder TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TType <|.. TGenericParameterType TEntityMetaLevelDependency <|.. TType TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TAssociation <|.. TInvocation THasSignature <|.. TInvocation TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TParameterConcretization <|.. ParameterConcretization TFileSystemEntity <|.. TFolder TIndexedFileNavigation <|.. IndexedFileAnchor TAssociation <|.. TConcretization TParametricEntity <|.. ParametricInterface TStructuralEntity <|.. StructuralEntity TAssociation <|.. TImport TWithTypes <|.. TWithInterfaces TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation TWithInvocations "sender" -- "outgoingInvocations*" TInvocation TFunction "functions*" --o "functionOwner" TWithFunctions TWithImports "importingEntity" -- "outgoingImports*" TImport TImportable "importedEntity" -- "incomingImports*" TImport TConcreteParameterType "concreteParameters*" -- "concreteEntities*" TParametricEntity TInvocable "candidates*" -- "incomingInvocations*" TInvocation TComment "comments*" --o "commentedEntity" TWithComments TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType Model -- "sourceLanguage" TSourceLanguage Decorator "decorators*" -- "decoratedEntity" NamedEntity TInheritance "subInheritances*" -- "superclass" TWithInheritances TParametricEntity "concreteEntity" -- "genericization" TConcretization TMethod "methods*" --o "parentType" TWithMethods TInheritance "superInheritances*" -- "subclass" TWithInheritances TSourceEntity "element" -- "sourceAnchor" TSourceAnchor TParametricEntity "genericEntity" -- "concretizations*" TConcretization TTypedEntity "typedEntities*" -- "declaredType" TType TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TAccess "accesses*" -- "accessor" TWithAccesses TWithAttributes "parentType" o-- "attributes*" TAttribute TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TImplementable "interface" -- "implementations*" TImplementation TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TWithTypes "typeContainer" o-- "types*" TType TParametricEntity "genericEntities*" -- "genericParameters*" TGenericParameterType @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TReference <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsOverridden Number numberOfMethodsInherited Number numberOfAttributesInherited Number numberOfLocallyDefinedMethods Number numberOfMethodsInHierarchy Number totalNumberOfSubclasses } class Access <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class Namespace <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom2 Number lcom3 } class TEntityCreator <<(T,white)>> #CCFFFF { } class TEnumValue <<(T,white)External>> #FFFFCC { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number numberOfSubclasses Number hierarchyNestingLevel Number subclassHierarchyDepth Number numberOfDirectSubclasses } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TWithMethods <<(T,white)External>> #FFFFCC { Number tightClassCohesion Number numberOfMethods Number numberOfAbstractMethods Number weightedMethodCount } class SourceLanguage <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class TImportable <<(T,white)External>> #FFFFCC { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class EnumValue <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Boolean isRoot Number numberOfInternalClients Number numberOfExternalProviders Number numberOfDeadChildren Boolean isDead Number numberOfExternalClients Number fanIn Number numberOfChildren Number numberOfInternalProviders Number fanOut } class Folder <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class Function <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class TWithComments <<(T,white)External>> #FFFFCC { Number numberOfComments Boolean hasComments } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TConcretization <<(T,white)External>> #FFFFCC { } class TNamespace <<(T,white)External>> #FFFFCC { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class THasKind <<(T,white)External>> #FFFFCC { Boolean isSetter String kind Boolean isConstant Boolean isGetter Boolean isConstructor } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class Module <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class TParameter <<(T,white)External>> #FFFFCC { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class ArrowFunction <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfFolders Number numberOfEmptyLinesOfText Number numberOfFiles } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TFunction <<(T,white)External>> #FFFFCC { } class TType <<(T,white)External>> #FFFFCC { } class Concretization <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isReadWriteUnknown Boolean isWrite Boolean isRead } class TParametricEntity <<(T,white)External>> #FFFFCC { } class JSDoc <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPackageVisibility Boolean isProtected Boolean isPublic String visibility Boolean isPrivate } class ParametricClass <<(C,white)>> #CCFFFF { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class Entity <<(C,white)External>> #FFFFCC { Boolean isTagged Number numberOfTags Boolean isDead } class TSourceEntity <<(T,white)External>> #FFFFCC { Number numberOfLinesOfCode String sourceText Boolean containsReplicas Boolean isStub Number duplicationRate Number numberOfLinesOfCodeWithMoreThanOneCharacter } class TMethod <<(T,white)External>> #FFFFCC { } class TWithAccesses <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class TTypedEntity <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class TInheritance <<(T,white)External>> #FFFFCC { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TEnum <<(T,white)External>> #FFFFCC { } class SourceAnchor <<(C,white)>> #CCFFFF { } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class Enum <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class Implementation <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class TImplementation <<(T,white)External>> #FFFFCC { } class TWithTypes <<(T,white)External>> #FFFFCC { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class TImplementable <<(T,white)External>> #FFFFCC { } class TInvocation <<(T,white)External>> #FFFFCC { } class Parameter <<(C,white)>> #CCFFFF { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class ScriptEntity <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class Model <<(C,white)External>> #FFFFCC { Number numberOfModelMethods Number averageCyclomaticComplexity Number numberOfLinesOfCode Number numberOfMethods Number numberOfLinesOfCodePerPackage Number numberOfModelClasses Number numberOfLinesOfCodePerClass Number numberOfClasses Number numberOfLinesOfCodePerMethod Number numberOfClassesPerPackage Number numberOfClassesPerPackage } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class ParametricInterface <<(C,white)>> #CCFFFF { } class TComment <<(T,white)External>> #FFFFCC { String content } class ContainerEntity <<(C,white)>> #CCFFFF { } class TImport <<(T,white)External>> #FFFFCC { } class TFile <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfBytes Number numberOfKiloBytes Number numberOfEmptyLinesOfText Number averageNumberOfCharactersPerLine Number numberOfCharacters } class TCanImplement <<(T,white)External>> #FFFFCC { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean isDefinitelyAssigned Boolean readOnly Boolean isOptional } Entity <|-- Access Entity <|-- Invocation ScopingEntity <|-- Namespace SourcedEntity <|-- NamedEntity Entity <|-- Inheritance Entity <|-- SourceLanguage BehaviouralEntity <|-- Method StructuralEntity <|-- Variable Type <|-- ParameterType NamedEntity <|-- File StructuralEntity <|-- EnumValue NamedEntity <|-- Folder Entity <|-- Reference BehaviouralEntity <|-- Function Type <|-- Class NamedEntity <|-- Alias Entity <|-- ParameterConcretization SourcedEntity <|-- Comment ScriptEntity <|-- Module Function <|-- ParametricFunction Variable <|-- implicitVariable ContainerEntity <|-- Type BehaviouralEntity <|-- ArrowFunction ArrowFunction <|-- ParametricArrowFunction Entity <|-- SourcedEntity Entity <|-- Concretization SourceAnchor <|-- IndexedFileAnchor Class <|-- ParametricClass Type <|-- Interface ContainerEntity <|-- ScopingEntity Type <|-- PrimitiveType SourceAnchor <|-- SourceTextAnchor Object <|-- Entity ContainerEntity <|-- BehaviouralEntity SourcedEntity <|-- JSDoc Entity <|-- SourceAnchor Type <|-- Enum Entity <|-- Implementation Entity <|-- ImportClause Method <|-- ParametricMethod Method <|-- Accessor Entity <|-- Entity StructuralEntity <|-- Parameter ScopingEntity <|-- ScriptEntity NamedEntity <|-- StructuralEntity AbstractGroup <|-- Model Interface <|-- ParametricInterface NamedEntity <|-- ContainerEntity NamedEntity <|-- Decorator Model <|-- FamixTypeScriptModel StructuralEntity <|-- Property THasVisibility <|.. Property TAssociation <|.. TReference TType <|.. TGenericParameterType TAccess <|.. Access THasSignature <|.. Invocation TInvocation <|.. Invocation TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TInheritance <|.. Inheritance TStructuralEntity <|.. TEnumValue TSourceLanguage <|.. SourceLanguage TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TImportable <|.. Variable TLocalVariable <|.. Variable TGenericParameterType <|.. ParameterType TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType TType <|.. TPrimitiveType TFile <|.. File TEnumValue <|.. EnumValue TFolder <|.. Folder TReference <|.. Reference TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TImportable <|.. Alias TAssociation <|.. TConcretization TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TParameterConcretization <|.. ParameterConcretization TFileAnchor <|.. TIndexedFileNavigation TEntityMetaLevelDependency <|.. TNamespace TComment <|.. Comment TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TWithTypes <|.. TWithClasses TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TParametricEntity <|.. ParametricFunction TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TStructuralEntity <|.. TParameter TDefinedInModule <|.. ArrowFunction TFunction <|.. ArrowFunction TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TStructuralEntity <|.. TLocalVariable TFileSystemEntity <|.. TFolder TParametricEntity <|.. ParametricArrowFunction TSourceEntity <|.. SourcedEntity TWithComments <|.. SourcedEntity THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TAssociation <|.. TAccess TIndexedFileNavigation <|.. IndexedFileAnchor TAssociation <|.. TParameterConcretization THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TImplementable <|.. Interface TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TPrimitiveType <|.. PrimitiveType TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod THasImmediateSource <|.. SourceTextAnchor TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TWithTypes <|.. TWithInterfaces TSourceAnchor <|.. THasImmediateSource TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TParametricEntity <|.. ParametricClass TConcretization <|.. Concretization TAssociation <|.. TInheritance TType <|.. TEnum TWithEnumValues <|.. TEnum TSourceAnchor <|.. SourceAnchor TEnum <|.. Enum TImportable <|.. Enum TStructuralEntity <|.. TAttribute TImplementation <|.. Implementation TImport <|.. ImportClause TType <|.. TConcreteParameterType TAssociation <|.. TImplementation TParametricEntity <|.. ParametricMethod TAssociation <|.. TInvocation TParameter <|.. Parameter TStructuralEntity <|.. StructuralEntity TWithStatements <|.. ScriptEntity THasSignature <|.. TInvocation TParametricEntity <|.. ParametricInterface TEntityMetaLevelDependency <|.. TComment TFileSystemEntity <|.. TFile TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TImportable <|.. Decorator TAssociation <|.. TImport TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TEntityCreator <|.. FamixTypeScriptModel TAttribute <|.. Property TCanBeClassSide <|.. Property TGenericParameterType "genericParameter" -- "concretizations*" TParameterConcretization TType "declaredType" -- "typedEntities*" TTypedEntity TInvocation "incomingInvocations*" -- "candidates*" TInvocable TType "types*" --o "typeContainer" TWithTypes TImplementation "implementations*" -- "interface" TImplementable TImportable "importedEntity" -- "incomingImports*" TImport TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType Model -- "sourceLanguage" TSourceLanguage TWithMethods "parentType" o-- "methods*" TMethod TWithLocalVariables "parentBehaviouralEntity" o-- "localVariables*" TLocalVariable TSourceAnchor "sourceAnchor" -- "element" TSourceEntity TInvocation "outgoingInvocations*" -- "sender" TWithInvocations TFunction "functions*" --o "functionOwner" TWithFunctions TConcretization "genericization" -- "concreteEntity" TParametricEntity TImplementation "interfaceImplementations*" -- "implementingClass" TCanImplement TGenericParameterType "genericParameters*" -- "genericEntities*" TParametricEntity TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation TAccess "accesses*" -- "accessor" TWithAccesses TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TWithAttributes "parentType" o-- "attributes*" TAttribute TWithImports "importingEntity" -- "outgoingImports*" TImport TConcretization "concretizations*" -- "parameterConcretizations*" TParameterConcretization TWithInheritances "subclass" -- "superInheritances*" TInheritance NamedEntity "decoratedEntity" -- "decorators*" Decorator TConcretization "concretizations*" -- "genericEntity" TParametricEntity TWithComments "commentedEntity" o-- "comments*" TComment TWithInheritances "superclass" -- "subInheritances*" TInheritance @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript-traits.svg b/doc-uml/FamixTypeScript-traits.svg index fb828af..127c62b 100644 --- a/doc-uml/FamixTypeScript-traits.svg +++ b/doc-uml/FamixTypeScript-traits.svg @@ -1 +1 @@ -«External»THasSignatureString signature«External»TMethodType«External»TParameterConcretization«External»TEnumValue«External»TCanImplement«External»TImplementableJSDocParameter«External»THasImmediateSourceString source«External»TStructuralEntityAliasEntityBoolean isTaggedNumber numberOfTagsBoolean isDeadTEntityCreator«External»TNamespace«External»TInvocationsReceiver«External»TLocalVariableInterface«External»TClassNumber weightOfAClassBoolean isTestCase«External»TAccessBoolean isWriteBoolean isReadWriteUnknownBoolean isRead«External»TImplementationParametricFunctionSourceLanguageimplicitVariableSourceAnchorModuleInheritanceSourcedEntityFile«External»TInheritanceClass«External»TSourceLanguageDecoratorString expression«External»TWithStatementsNumber numberOfStatements«External»TInvocableEnumValueFunctionScopingEntity«External»TWithAttributesNumber numberOfAttributesParametricMethodEnumReference«External»TAttributeNumber hierarchyNestingLevelFamixTypeScriptModelBehaviouralEntity«External»TWithAccesses«External»TFunction«External»TConcreteParameterTypeConcretization«External»TEnum«External»TIndexedFileNavigationNumber startPosNumber endPos«External»TReference«External»TWithTypesContainerEntity«External»TWithInheritancesNumber numberOfSubclassesNumber hierarchyNestingLevelNumber numberOfDirectSubclassesNumber subclassHierarchyDepth«External»TEntityMetaLevelDependencyBoolean isDeadNumber numberOfChildrenNumber numberOfInternalProvidersBoolean isRootNumber numberOfExternalClientsNumber fanInNumber numberOfExternalProvidersNumber numberOfInternalClientsNumber numberOfDeadChildrenNumber fanOut«External»TCommentString content«External»TSourceEntityNumber numberOfLinesOfCodeWithMoreThanOneCharacterNumber numberOfLinesOfCodeNumber duplicationRateBoolean containsReplicasBoolean isStubString sourceText«External»TLCOMMetricsNumber lcom2Number lcom3AccessorCommentBoolean isJSDocArrowFunction«External»TFileNumber numberOfBytesNumber totalNumberOfLinesOfTextNumber numberOfEmptyLinesOfTextNumber averageNumberOfCharactersPerLineNumber numberOfCharactersNumber numberOfKiloBytesImplementation«External»THasKindBoolean isSetterBoolean isConstructorBoolean isConstantString kindBoolean isGetterParametricClassImportClause«External»TWithClassesNumber numberOfClassesParameterType«External»TNamedEntityString nameVariable«External»THasVisibilityBoolean isPrivateBoolean isPublicBoolean isPackageVisibilityBoolean isProtectedString visibility«External»TImportableSourceTextAnchor«External»TWithLocalVariables«External»TParameterInvocation«External»TDefinedInModule«External»ModelNumber numberOfClassesPerPackageNumber numberOfLinesOfCodePerPackageNumber numberOfMethodsNumber numberOfModelClassesNumber averageCyclomaticComplexityNumber numberOfModelMethodsNumber numberOfClassesPerPackageNumber numberOfLinesOfCodePerClassNumber numberOfClassesNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerMethodScriptEntityPrimitiveType«External»TWithImportsAccess«External»TPrimitiveType«External»TWithMethodsNumber weightedMethodCountNumber numberOfAbstractMethodsNumber tightClassCohesionNumber numberOfMethods«External»TWithCommentsNumber numberOfCommentsBoolean hasCommentsPropertyBoolean isJavaScriptPrivateBoolean readOnlyBoolean isDefinitelyAssignedBoolean isOptional«External»TTypedEntityNamespace«External»TWithInvocationsNumber numberOfOutgoingInvocations«External»TParametricEntityNamedEntityFolder«External»TTypeMethod«External»TInvocation«External»TClassMetricsNumber numberOfMethodsOverriddenNumber totalNumberOfSubclassesNumber numberOfMethodsInHierarchyNumber numberOfMethodsInheritedNumber numberOfAttributesInheritedNumber numberOfLocallyDefinedMethods«External»TSourceAnchorNumber lineCount«External»TGenericParameterType«External»TCanBeClassSideBoolean isClassSideParameterConcretizationIndexedFileAnchor«External»TFolderNumber totalNumberOfLinesOfTextNumber numberOfFilesNumber numberOfFoldersNumber numberOfEmptyLinesOfText«External»TWithFunctions«External»TCanBeAbstractBoolean isAbstract«External»TConcretization«External»TImportParametricInterfaceStructuralEntityTWithInterfacesParametricArrowFunctionObjectAbstractGroupTMethodMetricsTWithImplicitVariablesTWithParametersTAssociationTAccessibleTWithReferencesTWithEnumValuesTFileAnchorTFileSystemEntityTReferenceabledecorators*decoratedEntityreceiverreceivingInvocations*senderoutgoingInvocations*functions*functionOwnerimportingEntityoutgoingImports*importedEntityincomingImports*concreteParameters*concreteEntities*candidates*incomingInvocations*comments*commentedEntityconcretizations*genericParametersourceLanguagesubInheritances*superclasssuperInheritances*subclassconcreteEntitygenericizationgenericEntityconcretizations*methods*parentTypeelementsourceAnchortypedEntities*declaredTypeimplementingClassinterfaceImplementations*accesses*accessorparentTypeattributes*parameterConcretizations*concretizations*generics*concreteParameterinterfaceimplementations*localVariables*parentBehaviouralEntitytypeContainertypes*genericEntities*genericParameters* \ No newline at end of file +«External»TGenericParameterType«External»TReferenceTClassMetricsNumber numberOfMethodsOverriddenNumber numberOfMethodsInheritedNumber numberOfAttributesInheritedNumber numberOfLocallyDefinedMethodsNumber numberOfMethodsInHierarchyNumber totalNumberOfSubclassesAccessInvocation«External»TSourceAnchorNumber lineCountNamespaceNamedEntityInheritance«External»TCanBeClassSideBoolean isClassSide«External»TLCOMMetricsNumber lcom2Number lcom3TEntityCreator«External»TEnumValue«External»TWithInheritancesNumber numberOfSubclassesNumber hierarchyNestingLevelNumber subclassHierarchyDepthNumber numberOfDirectSubclasses«External»TCanBeAbstractBoolean isAbstract«External»TWithMethodsNumber tightClassCohesionNumber numberOfMethodsNumber numberOfAbstractMethodsNumber weightedMethodCountSourceLanguageMethodVariableParameterTypeFile«External»TImportable«External»TPrimitiveType«External»TSourceLanguageEnumValue«External»TEntityMetaLevelDependencyBoolean isRootNumber numberOfInternalClientsNumber numberOfExternalProvidersNumber numberOfDeadChildrenBoolean isDeadNumber numberOfExternalClientsNumber fanInNumber numberOfChildrenNumber numberOfInternalProvidersNumber fanOutFolderReference«External»TWithLocalVariables«External»TDefinedInModuleFunctionClassAlias«External»TWithCommentsNumber numberOfCommentsBoolean hasComments«External»TInvocationsReceiver«External»TConcretization«External»TNamespace«External»TWithClassesNumber numberOfClassesParameterConcretization«External»TIndexedFileNavigationNumber startPosNumber endPos«External»THasKindBoolean isSetterString kindBoolean isConstantBoolean isGetterBoolean isConstructorCommentBoolean isJSDoc«External»TWithStatementsNumber numberOfStatementsModuleParametricFunctionimplicitVariableType«External»TParameter«External»TLocalVariableArrowFunction«External»TFolderNumber totalNumberOfLinesOfTextNumber numberOfFoldersNumber numberOfEmptyLinesOfTextNumber numberOfFilesParametricArrowFunctionSourcedEntityBehaviouralEntity«External»TFunction«External»TTypeConcretization«External»TAccessBoolean isReadWriteUnknownBoolean isWriteBoolean isRead«External»TParametricEntityJSDocIndexedFileAnchor«External»TParameterConcretization«External»THasVisibilityBoolean isPackageVisibilityBoolean isProtectedBoolean isPublicString visibilityBoolean isPrivateParametricClass«External»TWithAttributesNumber numberOfAttributesEntityBoolean isTaggedNumber numberOfTagsBoolean isDead«External»TSourceEntityNumber numberOfLinesOfCodeString sourceTextBoolean containsReplicasBoolean isStubNumber duplicationRateNumber numberOfLinesOfCodeWithMoreThanOneCharacter«External»TMethod«External»TWithAccessesInterfaceSourceTextAnchorScopingEntityPrimitiveType«External»TTypedEntity«External»TWithImports«External»TStructuralEntity«External»TInheritanceTWithInterfaces«External»THasImmediateSourceString source«External»THasSignatureString signature«External»TEnumSourceAnchor«External»TAttributeNumber hierarchyNestingLevelEnum«External»TWithFunctionsImplementationImportClause«External»TConcreteParameterType«External»TImplementation«External»TWithTypesParametricMethodAccessor«External»TImplementable«External»TInvocationParameter«External»TNamedEntityString nameScriptEntityStructuralEntity«External»ModelNumber numberOfModelMethodsNumber averageCyclomaticComplexityNumber numberOfLinesOfCodeNumber numberOfMethodsNumber numberOfLinesOfCodePerPackageNumber numberOfModelClassesNumber numberOfLinesOfCodePerClassNumber numberOfClassesNumber numberOfLinesOfCodePerMethodNumber numberOfClassesPerPackageNumber numberOfClassesPerPackage«External»TWithInvocationsNumber numberOfOutgoingInvocationsParametricInterface«External»TCommentString contentContainerEntity«External»TImport«External»TFileNumber totalNumberOfLinesOfTextNumber numberOfBytesNumber numberOfKiloBytesNumber numberOfEmptyLinesOfTextNumber averageNumberOfCharactersPerLineNumber numberOfCharacters«External»TCanImplementDecoratorString expression«External»TClassNumber weightOfAClassBoolean isTestCaseFamixTypeScriptModel«External»TInvocablePropertyBoolean isJavaScriptPrivateBoolean isDefinitelyAssignedBoolean readOnlyBoolean isOptionalObjectAbstractGroupTAssociationTFileAnchorTWithReferencesTFileSystemEntityTReferenceableTWithParametersTMethodMetricsTWithImplicitVariablesTAccessibleTWithEnumValuesdecoratedEntitydecorators*genericParameterconcretizations*declaredTypetypedEntities*incomingInvocations*candidates*types*typeContainerimplementations*interfaceimportedEntityincomingImports*generics*concreteParametersourceLanguageparentTypemethods*parentBehaviouralEntitylocalVariables*sourceAnchorelementoutgoingInvocations*senderfunctions*functionOwnergenericizationconcreteEntityconcretizations*genericEntityinterfaceImplementations*implementingClassgenericParameters*genericEntities*receiverreceivingInvocations*accesses*accessorconcreteEntities*concreteParameters*parentTypeattributes*importingEntityoutgoingImports*concretizations*parameterConcretizations*subclasssuperInheritances*superclasssubInheritances*commentedEntitycomments* \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.puml b/doc-uml/FamixTypeScript.puml index 8be3200..5c75ee6 100644 --- a/doc-uml/FamixTypeScript.puml +++ b/doc-uml/FamixTypeScript.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class PrimitiveType <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Entity <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean readOnly Boolean isOptional Boolean isDefinitelyAssigned } class ContainerEntity <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TEntityCreator <<(T,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } Entity <|-- SourceLanguage Type <|-- PrimitiveType Entity <|-- ImportClause ScopingEntity <|-- ScriptEntity SourceAnchor <|-- SourceTextAnchor BehaviouralEntity <|-- ArrowFunction SourcedEntity <|-- Comment Entity <|-- Access Entity <|-- ParameterConcretization SourcedEntity <|-- NamedEntity Interface <|-- ParametricInterface NamedEntity <|-- Folder SourceAnchor <|-- IndexedFileAnchor ScopingEntity <|-- Namespace Type <|-- Enum Method <|-- ParametricMethod Type <|-- Class Method <|-- Accessor StructuralEntity <|-- Variable NamedEntity <|-- File Entity <|-- Concretization Class <|-- ParametricClass ScriptEntity <|-- Module Entity <|-- Inheritance Entity <|-- Invocation Variable <|-- implicitVariable BehaviouralEntity <|-- Function BehaviouralEntity <|-- Method SourcedEntity <|-- JSDoc StructuralEntity <|-- Parameter NamedEntity <|-- ContainerEntity NamedEntity <|-- Alias StructuralEntity <|-- Property NamedEntity <|-- StructuralEntity Type <|-- Interface ContainerEntity <|-- Type Entity <|-- Implementation Type <|-- ParameterType Entity <|-- Reference StructuralEntity <|-- EnumValue ContainerEntity <|-- BehaviouralEntity Function <|-- ParametricFunction Entity <|-- SourceAnchor ContainerEntity <|-- ScopingEntity NamedEntity <|-- Decorator Entity <|-- SourcedEntity ArrowFunction <|-- ParametricArrowFunction TClassMetrics <|.. Class TEntityCreator <|.. FamixTypeScriptModel TWithInterfaces <|.. ContainerEntity NamedEntity "decoratedEntity" -- "decorators*" Decorator @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class Inheritance <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class SourcedEntity <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class ParameterConcretization <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isOptional Boolean readOnly Boolean isDefinitelyAssigned Boolean isJavaScriptPrivate } class ArrowFunction <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } StructuralEntity <|-- EnumValue Entity <|-- Inheritance Entity <|-- Implementation ScopingEntity <|-- Namespace Variable <|-- implicitVariable Method <|-- ParametricMethod ScopingEntity <|-- ScriptEntity Entity <|-- Reference ScriptEntity <|-- Module ContainerEntity <|-- Type StructuralEntity <|-- Variable NamedEntity <|-- StructuralEntity NamedEntity <|-- ContainerEntity Type <|-- Enum NamedEntity <|-- File Entity <|-- SourceAnchor Type <|-- ParameterType ContainerEntity <|-- BehaviouralEntity SourceAnchor <|-- IndexedFileAnchor Class <|-- ParametricClass ArrowFunction <|-- ParametricArrowFunction Type <|-- Interface Entity <|-- SourceLanguage Entity <|-- Invocation Type <|-- PrimitiveType Entity <|-- Access NamedEntity <|-- Decorator Entity <|-- SourcedEntity NamedEntity <|-- Folder BehaviouralEntity <|-- Function Type <|-- Class SourcedEntity <|-- NamedEntity Interface <|-- ParametricInterface Entity <|-- ImportClause NamedEntity <|-- Alias Method <|-- Accessor SourceAnchor <|-- SourceTextAnchor Entity <|-- Concretization BehaviouralEntity <|-- Method Entity <|-- ParameterConcretization StructuralEntity <|-- Parameter BehaviouralEntity <|-- ArrowFunction SourcedEntity <|-- Comment StructuralEntity <|-- Property Function <|-- ParametricFunction SourcedEntity <|-- JSDoc ContainerEntity <|-- ScopingEntity TEntityCreator <|.. FamixTypeScriptModel TWithInterfaces <|.. ContainerEntity TClassMetrics <|.. Class Decorator "decorators*" -- "decoratedEntity" NamedEntity @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.svg b/doc-uml/FamixTypeScript.svg index f2f3e6c..fccebe4 100644 --- a/doc-uml/FamixTypeScript.svg +++ b/doc-uml/FamixTypeScript.svg @@ -1 +1 @@ -PrimitiveTypeImportClauseScriptEntityArrowFunctionSourceTextAnchorCommentBoolean isJSDocEntityAccessParameterConcretizationNamedEntityParametricInterfaceIndexedFileAnchorFolderParametricMethodClassEnumNamespaceAccessorFileVariableFamixTypeScriptModelConcretizationModuleParametricClassTClassMetricsInheritanceInvocationimplicitVariableFunctionMethodJSDocParameterTWithInterfacesPropertyBoolean isJavaScriptPrivateBoolean readOnlyBoolean isOptionalBoolean isDefinitelyAssignedContainerEntityAliasStructuralEntityInterfaceImplementationTypeParameterTypeReferenceEnumValueBehaviouralEntityParametricFunctionSourceAnchorScopingEntityDecoratorString expressionTEntityCreatorSourcedEntityParametricArrowFunctionSourceLanguagedecoratedEntitydecorators* \ No newline at end of file +InheritanceEnumValueImplementationimplicitVariableParametricMethodNamespaceScriptEntityReferenceModuleTypeVariableEntityFamixTypeScriptModelStructuralEntityContainerEntityEnumFileSourceAnchorParameterTypeIndexedFileAnchorBehaviouralEntityParametricClassTClassMetricsParametricArrowFunctionInterfaceSourceLanguageInvocationPrimitiveTypeAccessDecoratorString expressionSourcedEntityFolderFunctionClassTEntityCreatorNamedEntityParametricInterfaceImportClauseSourceTextAnchorAccessorAliasConcretizationMethodTWithInterfacesCommentBoolean isJSDocParameterConcretizationParameterPropertyBoolean isOptionalBoolean readOnlyBoolean isDefinitelyAssignedBoolean isJavaScriptPrivateArrowFunctionParametricFunctionJSDocScopingEntitydecorators*decoratedEntity \ No newline at end of file From 646aab032c911637b53d8b941f524755c9d1db9a Mon Sep 17 00:00:00 2001 From: "C. Fuhrman" Date: Thu, 1 Aug 2024 14:43:34 -0400 Subject: [PATCH 5/8] Removed redundant method --- .../FamixTWithSourceLanguages.extension.st | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 src/Famix-TypeScript-Extensions/FamixTWithSourceLanguages.extension.st diff --git a/src/Famix-TypeScript-Extensions/FamixTWithSourceLanguages.extension.st b/src/Famix-TypeScript-Extensions/FamixTWithSourceLanguages.extension.st deleted file mode 100644 index f7836aa..0000000 --- a/src/Famix-TypeScript-Extensions/FamixTWithSourceLanguages.extension.st +++ /dev/null @@ -1,8 +0,0 @@ -Extension { #name : #FamixTWithSourceLanguages } - -{ #category : #'*Famix-TypeScript-Extensions' } -FamixTWithSourceLanguages >> formattedSourceText [ - ^ self sourceLanguage - ifNotNil: [ :language | language format: self sourceText from: self ] - ifNil: [ self sourceText ] -] From 7b7a80bf651f344d8410d8ecf3f2f79d3b31c57f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 1 Aug 2024 18:44:38 +0000 Subject: [PATCH 6/8] Update docs for branch Reference-TReference --- doc-uml/FamixTypeScript-traits.puml | 2 +- doc-uml/FamixTypeScript-traits.svg | 2 +- doc-uml/FamixTypeScript.puml | 2 +- doc-uml/FamixTypeScript.svg | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc-uml/FamixTypeScript-traits.puml b/doc-uml/FamixTypeScript-traits.puml index 75467da..128fb9e 100644 --- a/doc-uml/FamixTypeScript-traits.puml +++ b/doc-uml/FamixTypeScript-traits.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TReference <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsOverridden Number numberOfMethodsInherited Number numberOfAttributesInherited Number numberOfLocallyDefinedMethods Number numberOfMethodsInHierarchy Number totalNumberOfSubclasses } class Access <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class Namespace <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom2 Number lcom3 } class TEntityCreator <<(T,white)>> #CCFFFF { } class TEnumValue <<(T,white)External>> #FFFFCC { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number numberOfSubclasses Number hierarchyNestingLevel Number subclassHierarchyDepth Number numberOfDirectSubclasses } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TWithMethods <<(T,white)External>> #FFFFCC { Number tightClassCohesion Number numberOfMethods Number numberOfAbstractMethods Number weightedMethodCount } class SourceLanguage <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class TImportable <<(T,white)External>> #FFFFCC { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class EnumValue <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Boolean isRoot Number numberOfInternalClients Number numberOfExternalProviders Number numberOfDeadChildren Boolean isDead Number numberOfExternalClients Number fanIn Number numberOfChildren Number numberOfInternalProviders Number fanOut } class Folder <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class Function <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class TWithComments <<(T,white)External>> #FFFFCC { Number numberOfComments Boolean hasComments } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TConcretization <<(T,white)External>> #FFFFCC { } class TNamespace <<(T,white)External>> #FFFFCC { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class THasKind <<(T,white)External>> #FFFFCC { Boolean isSetter String kind Boolean isConstant Boolean isGetter Boolean isConstructor } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class Module <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class TParameter <<(T,white)External>> #FFFFCC { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class ArrowFunction <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfFolders Number numberOfEmptyLinesOfText Number numberOfFiles } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TFunction <<(T,white)External>> #FFFFCC { } class TType <<(T,white)External>> #FFFFCC { } class Concretization <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isReadWriteUnknown Boolean isWrite Boolean isRead } class TParametricEntity <<(T,white)External>> #FFFFCC { } class JSDoc <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPackageVisibility Boolean isProtected Boolean isPublic String visibility Boolean isPrivate } class ParametricClass <<(C,white)>> #CCFFFF { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class Entity <<(C,white)External>> #FFFFCC { Boolean isTagged Number numberOfTags Boolean isDead } class TSourceEntity <<(T,white)External>> #FFFFCC { Number numberOfLinesOfCode String sourceText Boolean containsReplicas Boolean isStub Number duplicationRate Number numberOfLinesOfCodeWithMoreThanOneCharacter } class TMethod <<(T,white)External>> #FFFFCC { } class TWithAccesses <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class TTypedEntity <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class TInheritance <<(T,white)External>> #FFFFCC { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TEnum <<(T,white)External>> #FFFFCC { } class SourceAnchor <<(C,white)>> #CCFFFF { } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class Enum <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class Implementation <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class TImplementation <<(T,white)External>> #FFFFCC { } class TWithTypes <<(T,white)External>> #FFFFCC { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class TImplementable <<(T,white)External>> #FFFFCC { } class TInvocation <<(T,white)External>> #FFFFCC { } class Parameter <<(C,white)>> #CCFFFF { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class ScriptEntity <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class Model <<(C,white)External>> #FFFFCC { Number numberOfModelMethods Number averageCyclomaticComplexity Number numberOfLinesOfCode Number numberOfMethods Number numberOfLinesOfCodePerPackage Number numberOfModelClasses Number numberOfLinesOfCodePerClass Number numberOfClasses Number numberOfLinesOfCodePerMethod Number numberOfClassesPerPackage Number numberOfClassesPerPackage } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class ParametricInterface <<(C,white)>> #CCFFFF { } class TComment <<(T,white)External>> #FFFFCC { String content } class ContainerEntity <<(C,white)>> #CCFFFF { } class TImport <<(T,white)External>> #FFFFCC { } class TFile <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfBytes Number numberOfKiloBytes Number numberOfEmptyLinesOfText Number averageNumberOfCharactersPerLine Number numberOfCharacters } class TCanImplement <<(T,white)External>> #FFFFCC { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean isDefinitelyAssigned Boolean readOnly Boolean isOptional } Entity <|-- Access Entity <|-- Invocation ScopingEntity <|-- Namespace SourcedEntity <|-- NamedEntity Entity <|-- Inheritance Entity <|-- SourceLanguage BehaviouralEntity <|-- Method StructuralEntity <|-- Variable Type <|-- ParameterType NamedEntity <|-- File StructuralEntity <|-- EnumValue NamedEntity <|-- Folder Entity <|-- Reference BehaviouralEntity <|-- Function Type <|-- Class NamedEntity <|-- Alias Entity <|-- ParameterConcretization SourcedEntity <|-- Comment ScriptEntity <|-- Module Function <|-- ParametricFunction Variable <|-- implicitVariable ContainerEntity <|-- Type BehaviouralEntity <|-- ArrowFunction ArrowFunction <|-- ParametricArrowFunction Entity <|-- SourcedEntity Entity <|-- Concretization SourceAnchor <|-- IndexedFileAnchor Class <|-- ParametricClass Type <|-- Interface ContainerEntity <|-- ScopingEntity Type <|-- PrimitiveType SourceAnchor <|-- SourceTextAnchor Object <|-- Entity ContainerEntity <|-- BehaviouralEntity SourcedEntity <|-- JSDoc Entity <|-- SourceAnchor Type <|-- Enum Entity <|-- Implementation Entity <|-- ImportClause Method <|-- ParametricMethod Method <|-- Accessor Entity <|-- Entity StructuralEntity <|-- Parameter ScopingEntity <|-- ScriptEntity NamedEntity <|-- StructuralEntity AbstractGroup <|-- Model Interface <|-- ParametricInterface NamedEntity <|-- ContainerEntity NamedEntity <|-- Decorator Model <|-- FamixTypeScriptModel StructuralEntity <|-- Property THasVisibility <|.. Property TAssociation <|.. TReference TType <|.. TGenericParameterType TAccess <|.. Access THasSignature <|.. Invocation TInvocation <|.. Invocation TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TInheritance <|.. Inheritance TStructuralEntity <|.. TEnumValue TSourceLanguage <|.. SourceLanguage TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TImportable <|.. Variable TLocalVariable <|.. Variable TGenericParameterType <|.. ParameterType TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType TType <|.. TPrimitiveType TFile <|.. File TEnumValue <|.. EnumValue TFolder <|.. Folder TReference <|.. Reference TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TImportable <|.. Alias TAssociation <|.. TConcretization TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TParameterConcretization <|.. ParameterConcretization TFileAnchor <|.. TIndexedFileNavigation TEntityMetaLevelDependency <|.. TNamespace TComment <|.. Comment TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TWithTypes <|.. TWithClasses TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TParametricEntity <|.. ParametricFunction TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TStructuralEntity <|.. TParameter TDefinedInModule <|.. ArrowFunction TFunction <|.. ArrowFunction TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TStructuralEntity <|.. TLocalVariable TFileSystemEntity <|.. TFolder TParametricEntity <|.. ParametricArrowFunction TSourceEntity <|.. SourcedEntity TWithComments <|.. SourcedEntity THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TAssociation <|.. TAccess TIndexedFileNavigation <|.. IndexedFileAnchor TAssociation <|.. TParameterConcretization THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TImplementable <|.. Interface TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TPrimitiveType <|.. PrimitiveType TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod THasImmediateSource <|.. SourceTextAnchor TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TWithTypes <|.. TWithInterfaces TSourceAnchor <|.. THasImmediateSource TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TParametricEntity <|.. ParametricClass TConcretization <|.. Concretization TAssociation <|.. TInheritance TType <|.. TEnum TWithEnumValues <|.. TEnum TSourceAnchor <|.. SourceAnchor TEnum <|.. Enum TImportable <|.. Enum TStructuralEntity <|.. TAttribute TImplementation <|.. Implementation TImport <|.. ImportClause TType <|.. TConcreteParameterType TAssociation <|.. TImplementation TParametricEntity <|.. ParametricMethod TAssociation <|.. TInvocation TParameter <|.. Parameter TStructuralEntity <|.. StructuralEntity TWithStatements <|.. ScriptEntity THasSignature <|.. TInvocation TParametricEntity <|.. ParametricInterface TEntityMetaLevelDependency <|.. TComment TFileSystemEntity <|.. TFile TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TImportable <|.. Decorator TAssociation <|.. TImport TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TEntityCreator <|.. FamixTypeScriptModel TAttribute <|.. Property TCanBeClassSide <|.. Property TGenericParameterType "genericParameter" -- "concretizations*" TParameterConcretization TType "declaredType" -- "typedEntities*" TTypedEntity TInvocation "incomingInvocations*" -- "candidates*" TInvocable TType "types*" --o "typeContainer" TWithTypes TImplementation "implementations*" -- "interface" TImplementable TImportable "importedEntity" -- "incomingImports*" TImport TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType Model -- "sourceLanguage" TSourceLanguage TWithMethods "parentType" o-- "methods*" TMethod TWithLocalVariables "parentBehaviouralEntity" o-- "localVariables*" TLocalVariable TSourceAnchor "sourceAnchor" -- "element" TSourceEntity TInvocation "outgoingInvocations*" -- "sender" TWithInvocations TFunction "functions*" --o "functionOwner" TWithFunctions TConcretization "genericization" -- "concreteEntity" TParametricEntity TImplementation "interfaceImplementations*" -- "implementingClass" TCanImplement TGenericParameterType "genericParameters*" -- "genericEntities*" TParametricEntity TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation TAccess "accesses*" -- "accessor" TWithAccesses TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TWithAttributes "parentType" o-- "attributes*" TAttribute TWithImports "importingEntity" -- "outgoingImports*" TImport TConcretization "concretizations*" -- "parameterConcretizations*" TParameterConcretization TWithInheritances "subclass" -- "superInheritances*" TInheritance NamedEntity "decoratedEntity" -- "decorators*" Decorator TConcretization "concretizations*" -- "genericEntity" TParametricEntity TWithComments "commentedEntity" o-- "comments*" TComment TWithInheritances "superclass" -- "subInheritances*" TInheritance @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class Folder <<(C,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TImplementable <<(T,white)External>> #FFFFCC { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class PrimitiveType <<(C,white)>> #CCFFFF { } class TImportable <<(T,white)External>> #FFFFCC { } class THasVisibility <<(T,white)External>> #FFFFCC { String visibility Boolean isProtected Boolean isPublic Boolean isPackageVisibility Boolean isPrivate } class TCanImplement <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class TFunction <<(T,white)External>> #FFFFCC { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class Inheritance <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class Module <<(C,white)>> #CCFFFF { } class TImplementation <<(T,white)External>> #FFFFCC { } class Alias <<(C,white)>> #CCFFFF { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class JSDoc <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class TInvocable <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number tightClassCohesion Number weightedMethodCount Number numberOfAbstractMethods Number numberOfMethods } class Variable <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class TWithComments <<(T,white)External>> #FFFFCC { Boolean hasComments Number numberOfComments } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Decorator <<(C,white)>> #CCFFFF { String expression } class TNamespace <<(T,white)External>> #FFFFCC { } class Property <<(C,white)>> #CCFFFF { Boolean isOptional Boolean isDefinitelyAssigned Boolean readOnly Boolean isJavaScriptPrivate } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class THasKind <<(T,white)External>> #FFFFCC { String kind Boolean isSetter Boolean isGetter Boolean isConstant Boolean isConstructor } class TFile <<(T,white)External>> #FFFFCC { Number numberOfBytes Number numberOfEmptyLinesOfText Number averageNumberOfCharactersPerLine Number numberOfKiloBytes Number numberOfCharacters Number totalNumberOfLinesOfText } class ScopingEntity <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isRead Boolean isReadWriteUnknown Boolean isWrite } class Class <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TSourceEntity <<(T,white)External>> #FFFFCC { Number numberOfLinesOfCodeWithMoreThanOneCharacter Boolean containsReplicas String sourceText Number numberOfLinesOfCode Boolean isStub Number duplicationRate } class ContainerEntity <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number numberOfExternalProviders Boolean isDead Number numberOfExternalClients Number numberOfInternalClients Number fanIn Number numberOfInternalProviders Boolean isRoot Number numberOfChildren Number fanOut Number numberOfDeadChildren } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TImport <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Model <<(C,white)External>> #FFFFCC { Number numberOfClassesPerPackage Number numberOfModelMethods Number numberOfLinesOfCodePerPackage Number averageCyclomaticComplexity Number numberOfClassesPerPackage Number numberOfMethods Number numberOfClasses Number numberOfLinesOfCodePerClass Number numberOfLinesOfCode Number numberOfLinesOfCodePerMethod Number numberOfModelClasses } class Invocation <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class TEnum <<(T,white)External>> #FFFFCC { } class TInvocation <<(T,white)External>> #FFFFCC { } class ParametricMethod <<(C,white)>> #CCFFFF { } class TConcretization <<(T,white)External>> #FFFFCC { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class Function <<(C,white)>> #CCFFFF { } class TTypedEntity <<(T,white)External>> #FFFFCC { } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class Enum <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfFiles Number numberOfEmptyLinesOfText Number numberOfFolders Number totalNumberOfLinesOfText } class TClass <<(T,white)External>> #FFFFCC { Boolean isTestCase Number weightOfAClass } class TParametricEntity <<(T,white)External>> #FFFFCC { } class Parameter <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class TParameter <<(T,white)External>> #FFFFCC { } class Entity <<(C,white)External>> #FFFFCC { Boolean isTagged Number numberOfTags Boolean isDead } class TType <<(T,white)External>> #FFFFCC { } class TWithTypes <<(T,white)External>> #FFFFCC { } class ParameterType <<(C,white)>> #CCFFFF { } class TComment <<(T,white)External>> #FFFFCC { String content } class SourcedEntity <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TReference <<(T,white)External>> #FFFFCC { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class ScriptEntity <<(C,white)>> #CCFFFF { } class TWithImports <<(T,white)External>> #FFFFCC { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TInheritance <<(T,white)External>> #FFFFCC { } class TMethod <<(T,white)External>> #FFFFCC { } class File <<(C,white)>> #CCFFFF { } class TWithAccesses <<(T,white)External>> #FFFFCC { } class Method <<(C,white)>> #CCFFFF { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom3 Number lcom2 } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfLocallyDefinedMethods Number totalNumberOfSubclasses Number numberOfMethodsInHierarchy Number numberOfMethodsOverridden Number numberOfMethodsInherited Number numberOfAttributesInherited } class implicitVariable <<(C,white)>> #CCFFFF { } class TEnumValue <<(T,white)External>> #FFFFCC { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number subclassHierarchyDepth Number hierarchyNestingLevel Number numberOfDirectSubclasses Number numberOfSubclasses } class ParametricFunction <<(C,white)>> #CCFFFF { } Function <|-- ParametricFunction BehaviouralEntity <|-- Method NamedEntity <|-- Folder Type <|-- PrimitiveType ContainerEntity <|-- Type SourcedEntity <|-- JSDoc Entity <|-- Inheritance ContainerEntity <|-- BehaviouralEntity ScriptEntity <|-- Module SourceAnchor <|-- IndexedFileAnchor Entity <|-- Entity SourcedEntity <|-- Comment StructuralEntity <|-- Property ContainerEntity <|-- ScopingEntity Type <|-- Class SourcedEntity <|-- NamedEntity NamedEntity <|-- ContainerEntity Type <|-- Interface Class <|-- ParametricClass Entity <|-- ImportClause Entity <|-- SourceLanguage Entity <|-- Implementation Entity <|-- SourceAnchor SourceAnchor <|-- SourceTextAnchor NamedEntity <|-- Decorator StructuralEntity <|-- Variable NamedEntity <|-- Alias Entity <|-- ParameterConcretization NamedEntity <|-- StructuralEntity Entity <|-- Access Entity <|-- Concretization AbstractGroup <|-- Model Entity <|-- Invocation StructuralEntity <|-- EnumValue Method <|-- ParametricMethod BehaviouralEntity <|-- Function Type <|-- Enum StructuralEntity <|-- Parameter Method <|-- Accessor Interface <|-- ParametricInterface Object <|-- Entity Type <|-- ParameterType ScopingEntity <|-- Namespace Entity <|-- SourcedEntity BehaviouralEntity <|-- ArrowFunction Entity <|-- Reference ScopingEntity <|-- ScriptEntity Model <|-- FamixTypeScriptModel ArrowFunction <|-- ParametricArrowFunction Variable <|-- implicitVariable NamedEntity <|-- File TParametricEntity <|.. ParametricFunction TSourceAnchor <|.. THasImmediateSource TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method TFolder <|.. Folder THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TPrimitiveType <|.. PrimitiveType TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TWithTypes <|.. TWithClasses TType <|.. TPrimitiveType TInheritance <|.. Inheritance TWithTypes <|.. TWithInterfaces TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TStructuralEntity <|.. TLocalVariable TIndexedFileNavigation <|.. IndexedFileAnchor TAssociation <|.. TImplementation TComment <|.. Comment TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TStructuralEntity <|.. TAttribute TFileSystemEntity <|.. TFile TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TAssociation <|.. TParameterConcretization TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TWithAccesses <|.. Class TWithInvocations <|.. Class TImplementable <|.. Interface TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TClassMetrics <|.. Class TAssociation <|.. TAccess TImport <|.. ImportClause TParametricEntity <|.. ParametricClass TSourceLanguage <|.. SourceLanguage TSourceAnchor <|.. SourceAnchor TImplementation <|.. Implementation THasImmediateSource <|.. SourceTextAnchor TImportable <|.. Decorator TImportable <|.. Variable TLocalVariable <|.. Variable TFileAnchor <|.. TIndexedFileNavigation TAssociation <|.. TImport TParameterConcretization <|.. ParameterConcretization TImportable <|.. Alias TStructuralEntity <|.. StructuralEntity TAccess <|.. Access TConcretization <|.. Concretization THasSignature <|.. Invocation TInvocation <|.. Invocation TEnumValue <|.. EnumValue TType <|.. TEnum TAssociation <|.. TInvocation THasSignature <|.. TInvocation TParametricEntity <|.. ParametricMethod TWithEnumValues <|.. TEnum TAssociation <|.. TConcretization TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TEnum <|.. Enum TImportable <|.. Enum TFileSystemEntity <|.. TFolder TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TParameter <|.. Parameter TParametricEntity <|.. ParametricInterface TType <|.. TConcreteParameterType TStructuralEntity <|.. TParameter TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TGenericParameterType <|.. ParameterType TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType TEntityMetaLevelDependency <|.. TComment TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TSourceEntity <|.. SourcedEntity TDefinedInModule <|.. ArrowFunction TFunction <|.. ArrowFunction TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TWithComments <|.. SourcedEntity TReference <|.. Reference TAssociation <|.. TReference TType <|.. TGenericParameterType TWithStatements <|.. ScriptEntity TEntityCreator <|.. FamixTypeScriptModel THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TParametricEntity <|.. ParametricArrowFunction TAssociation <|.. TInheritance TStructuralEntity <|.. TEnumValue TFile <|.. File TInvocable "candidates*" -- "incomingInvocations*" TInvocation TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TAttribute "attributes*" --o "parentType" TWithAttributes TAccess "accesses*" -- "accessor" TWithAccesses TConcretization "concretizations*" -- "genericEntity" TParametricEntity TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TInheritance "subInheritances*" -- "superclass" TWithInheritances TType "types*" --o "typeContainer" TWithTypes Model -- "sourceLanguage" TSourceLanguage TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TSourceEntity "element" -- "sourceAnchor" TSourceAnchor TConcretization "genericization" -- "concreteEntity" TParametricEntity TTypedEntity "typedEntities*" -- "declaredType" TType TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization TWithComments "commentedEntity" o-- "comments*" TComment TImport "outgoingImports*" -- "importingEntity" TWithImports TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType TWithMethods "parentType" o-- "methods*" TMethod TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation TImplementable "interface" -- "implementations*" TImplementation TInheritance "superInheritances*" -- "subclass" TWithInheritances TImportable "importedEntity" -- "incomingImports*" TImport TWithInvocations "sender" -- "outgoingInvocations*" TInvocation Decorator "decorators*" -- "decoratedEntity" NamedEntity TFunction "functions*" --o "functionOwner" TWithFunctions TParametricEntity "genericEntities*" -- "genericParameters*" TGenericParameterType @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript-traits.svg b/doc-uml/FamixTypeScript-traits.svg index 127c62b..cdcd749 100644 --- a/doc-uml/FamixTypeScript-traits.svg +++ b/doc-uml/FamixTypeScript-traits.svg @@ -1 +1 @@ -«External»TGenericParameterType«External»TReferenceTClassMetricsNumber numberOfMethodsOverriddenNumber numberOfMethodsInheritedNumber numberOfAttributesInheritedNumber numberOfLocallyDefinedMethodsNumber numberOfMethodsInHierarchyNumber totalNumberOfSubclassesAccessInvocation«External»TSourceAnchorNumber lineCountNamespaceNamedEntityInheritance«External»TCanBeClassSideBoolean isClassSide«External»TLCOMMetricsNumber lcom2Number lcom3TEntityCreator«External»TEnumValue«External»TWithInheritancesNumber numberOfSubclassesNumber hierarchyNestingLevelNumber subclassHierarchyDepthNumber numberOfDirectSubclasses«External»TCanBeAbstractBoolean isAbstract«External»TWithMethodsNumber tightClassCohesionNumber numberOfMethodsNumber numberOfAbstractMethodsNumber weightedMethodCountSourceLanguageMethodVariableParameterTypeFile«External»TImportable«External»TPrimitiveType«External»TSourceLanguageEnumValue«External»TEntityMetaLevelDependencyBoolean isRootNumber numberOfInternalClientsNumber numberOfExternalProvidersNumber numberOfDeadChildrenBoolean isDeadNumber numberOfExternalClientsNumber fanInNumber numberOfChildrenNumber numberOfInternalProvidersNumber fanOutFolderReference«External»TWithLocalVariables«External»TDefinedInModuleFunctionClassAlias«External»TWithCommentsNumber numberOfCommentsBoolean hasComments«External»TInvocationsReceiver«External»TConcretization«External»TNamespace«External»TWithClassesNumber numberOfClassesParameterConcretization«External»TIndexedFileNavigationNumber startPosNumber endPos«External»THasKindBoolean isSetterString kindBoolean isConstantBoolean isGetterBoolean isConstructorCommentBoolean isJSDoc«External»TWithStatementsNumber numberOfStatementsModuleParametricFunctionimplicitVariableType«External»TParameter«External»TLocalVariableArrowFunction«External»TFolderNumber totalNumberOfLinesOfTextNumber numberOfFoldersNumber numberOfEmptyLinesOfTextNumber numberOfFilesParametricArrowFunctionSourcedEntityBehaviouralEntity«External»TFunction«External»TTypeConcretization«External»TAccessBoolean isReadWriteUnknownBoolean isWriteBoolean isRead«External»TParametricEntityJSDocIndexedFileAnchor«External»TParameterConcretization«External»THasVisibilityBoolean isPackageVisibilityBoolean isProtectedBoolean isPublicString visibilityBoolean isPrivateParametricClass«External»TWithAttributesNumber numberOfAttributesEntityBoolean isTaggedNumber numberOfTagsBoolean isDead«External»TSourceEntityNumber numberOfLinesOfCodeString sourceTextBoolean containsReplicasBoolean isStubNumber duplicationRateNumber numberOfLinesOfCodeWithMoreThanOneCharacter«External»TMethod«External»TWithAccessesInterfaceSourceTextAnchorScopingEntityPrimitiveType«External»TTypedEntity«External»TWithImports«External»TStructuralEntity«External»TInheritanceTWithInterfaces«External»THasImmediateSourceString source«External»THasSignatureString signature«External»TEnumSourceAnchor«External»TAttributeNumber hierarchyNestingLevelEnum«External»TWithFunctionsImplementationImportClause«External»TConcreteParameterType«External»TImplementation«External»TWithTypesParametricMethodAccessor«External»TImplementable«External»TInvocationParameter«External»TNamedEntityString nameScriptEntityStructuralEntity«External»ModelNumber numberOfModelMethodsNumber averageCyclomaticComplexityNumber numberOfLinesOfCodeNumber numberOfMethodsNumber numberOfLinesOfCodePerPackageNumber numberOfModelClassesNumber numberOfLinesOfCodePerClassNumber numberOfClassesNumber numberOfLinesOfCodePerMethodNumber numberOfClassesPerPackageNumber numberOfClassesPerPackage«External»TWithInvocationsNumber numberOfOutgoingInvocationsParametricInterface«External»TCommentString contentContainerEntity«External»TImport«External»TFileNumber totalNumberOfLinesOfTextNumber numberOfBytesNumber numberOfKiloBytesNumber numberOfEmptyLinesOfTextNumber averageNumberOfCharactersPerLineNumber numberOfCharacters«External»TCanImplementDecoratorString expression«External»TClassNumber weightOfAClassBoolean isTestCaseFamixTypeScriptModel«External»TInvocablePropertyBoolean isJavaScriptPrivateBoolean isDefinitelyAssignedBoolean readOnlyBoolean isOptionalObjectAbstractGroupTAssociationTFileAnchorTWithReferencesTFileSystemEntityTReferenceableTWithParametersTMethodMetricsTWithImplicitVariablesTAccessibleTWithEnumValuesdecoratedEntitydecorators*genericParameterconcretizations*declaredTypetypedEntities*incomingInvocations*candidates*types*typeContainerimplementations*interfaceimportedEntityincomingImports*generics*concreteParametersourceLanguageparentTypemethods*parentBehaviouralEntitylocalVariables*sourceAnchorelementoutgoingInvocations*senderfunctions*functionOwnergenericizationconcreteEntityconcretizations*genericEntityinterfaceImplementations*implementingClassgenericParameters*genericEntities*receiverreceivingInvocations*accesses*accessorconcreteEntities*concreteParameters*parentTypeattributes*importingEntityoutgoingImports*concretizations*parameterConcretizations*subclasssuperInheritances*superclasssubInheritances*commentedEntitycomments* \ No newline at end of file +Folder«External»TWithInvocationsNumber numberOfOutgoingInvocations«External»TInvocationsReceiver«External»TImplementable«External»THasSignatureString signaturePrimitiveType«External»TImportable«External»THasVisibilityString visibilityBoolean isProtectedBoolean isPublicBoolean isPackageVisibilityBoolean isPrivate«External»TCanImplementType«External»TDefinedInModule«External»TFunction«External»TPrimitiveTypeInheritanceTWithInterfacesBehaviouralEntity«External»TWithStatementsNumber numberOfStatementsModule«External»TImplementationAlias«External»TWithClassesNumber numberOfClassesJSDocIndexedFileAnchorImplementation«External»TIndexedFileNavigationNumber startPosNumber endPos«External»TInvocable«External»TWithMethodsNumber tightClassCohesionNumber weightedMethodCountNumber numberOfAbstractMethodsNumber numberOfMethodsVariable«External»EntityBoolean isTaggedNumber numberOfTagsBoolean isDead«External»TLocalVariable«External»TWithCommentsBoolean hasCommentsNumber numberOfCommentsCommentBoolean isJSDocDecoratorString expression«External»TNamespacePropertyBoolean isOptionalBoolean isDefinitelyAssignedBoolean readOnlyBoolean isJavaScriptPrivate«External»TAttributeNumber hierarchyNestingLevel«External»THasKindString kindBoolean isSetterBoolean isGetterBoolean isConstantBoolean isConstructor«External»TFileNumber numberOfBytesNumber numberOfEmptyLinesOfTextNumber averageNumberOfCharactersPerLineNumber numberOfKiloBytesNumber numberOfCharactersNumber totalNumberOfLinesOfTextScopingEntityParametricClassSourceLanguage«External»TParameterConcretization«External»TAccessBoolean isReadBoolean isReadWriteUnknownBoolean isWriteClassNamedEntity«External»TWithFunctions«External»TCanBeAbstractBoolean isAbstract«External»TSourceEntityNumber numberOfLinesOfCodeWithMoreThanOneCharacterBoolean containsReplicasString sourceTextNumber numberOfLinesOfCodeBoolean isStubNumber duplicationRateContainerEntityStructuralEntity«External»TEntityMetaLevelDependencyNumber numberOfExternalProvidersBoolean isDeadNumber numberOfExternalClientsNumber numberOfInternalClientsNumber fanInNumber numberOfInternalProvidersBoolean isRootNumber numberOfChildrenNumber fanOutNumber numberOfDeadChildren«External»TWithLocalVariables«External»TImportInterfaceSourceTextAnchorImportClauseSourceAnchorParameterConcretizationTEntityCreatorAccessConcretization«External»ModelNumber numberOfClassesPerPackageNumber numberOfModelMethodsNumber numberOfLinesOfCodePerPackageNumber averageCyclomaticComplexityNumber numberOfClassesPerPackageNumber numberOfMethodsNumber numberOfClassesNumber numberOfLinesOfCodePerClassNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerMethodNumber numberOfModelClassesInvocationEnumValue«External»TEnum«External»TInvocationParametricMethod«External»TConcretization«External»TWithAttributesNumber numberOfAttributesFunction«External»TTypedEntity«External»TStructuralEntityEnum«External»TSourceLanguage«External»TFolderNumber numberOfFilesNumber numberOfEmptyLinesOfTextNumber numberOfFoldersNumber totalNumberOfLinesOfText«External»TClassBoolean isTestCaseNumber weightOfAClass«External»TParametricEntityParameterAccessorParametricInterface«External»TConcreteParameterType«External»TParameter«External»TType«External»TWithTypesParameterType«External»TCommentString contentSourcedEntity«External»TClassMetricsNumber numberOfLocallyDefinedMethodsNumber totalNumberOfSubclassesNumber numberOfMethodsInHierarchyNumber numberOfMethodsOverriddenNumber numberOfMethodsInheritedNumber numberOfAttributesInheritedNamespaceArrowFunctionReference«External»TReference«External»TGenericParameterTypeScriptEntity«External»TWithImports«External»TNamedEntityString nameFamixTypeScriptModel«External»TInheritance«External»TMethodFile«External»TWithAccessesMethod«External»THasImmediateSourceString source«External»TCanBeClassSideBoolean isClassSideParametricArrowFunction«External»TLCOMMetricsNumber lcom3Number lcom2«External»TSourceAnchorNumber lineCountimplicitVariable«External»TEnumValue«External»TWithInheritancesNumber subclassHierarchyDepthNumber hierarchyNestingLevelNumber numberOfDirectSubclassesNumber numberOfSubclassesParametricFunctionAbstractGroupObjectTWithParametersTWithReferencesTAssociationTFileSystemEntityTFileAnchorTWithEnumValuesTAccessibleTReferenceableTMethodMetricsTWithImplicitVariablesdecorators*decoratedEntitycandidates*incomingInvocations*localVariables*parentBehaviouralEntityattributes*parentTypeaccesses*accessorconcretizations*genericEntitygenericizationconcreteEntityconcreteEntities*concreteParameters*subInheritances*superclasssuperInheritances*subclasstypes*typeContainersourceLanguagegenerics*concreteParameterelementsourceAnchortypedEntities*declaredTypeparameterConcretizations*concretizations*commentedEntitycomments*outgoingImports*importingEntityconcretizations*genericParameterparentTypemethods*implementingClassinterfaceImplementations*receiverreceivingInvocations*interfaceimplementations*importedEntityincomingImports*senderoutgoingInvocations*functions*functionOwnergenericEntities*genericParameters* \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.puml b/doc-uml/FamixTypeScript.puml index 5c75ee6..ecdbaa2 100644 --- a/doc-uml/FamixTypeScript.puml +++ b/doc-uml/FamixTypeScript.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class Inheritance <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class SourcedEntity <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class ParameterConcretization <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isOptional Boolean readOnly Boolean isDefinitelyAssigned Boolean isJavaScriptPrivate } class ArrowFunction <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } StructuralEntity <|-- EnumValue Entity <|-- Inheritance Entity <|-- Implementation ScopingEntity <|-- Namespace Variable <|-- implicitVariable Method <|-- ParametricMethod ScopingEntity <|-- ScriptEntity Entity <|-- Reference ScriptEntity <|-- Module ContainerEntity <|-- Type StructuralEntity <|-- Variable NamedEntity <|-- StructuralEntity NamedEntity <|-- ContainerEntity Type <|-- Enum NamedEntity <|-- File Entity <|-- SourceAnchor Type <|-- ParameterType ContainerEntity <|-- BehaviouralEntity SourceAnchor <|-- IndexedFileAnchor Class <|-- ParametricClass ArrowFunction <|-- ParametricArrowFunction Type <|-- Interface Entity <|-- SourceLanguage Entity <|-- Invocation Type <|-- PrimitiveType Entity <|-- Access NamedEntity <|-- Decorator Entity <|-- SourcedEntity NamedEntity <|-- Folder BehaviouralEntity <|-- Function Type <|-- Class SourcedEntity <|-- NamedEntity Interface <|-- ParametricInterface Entity <|-- ImportClause NamedEntity <|-- Alias Method <|-- Accessor SourceAnchor <|-- SourceTextAnchor Entity <|-- Concretization BehaviouralEntity <|-- Method Entity <|-- ParameterConcretization StructuralEntity <|-- Parameter BehaviouralEntity <|-- ArrowFunction SourcedEntity <|-- Comment StructuralEntity <|-- Property Function <|-- ParametricFunction SourcedEntity <|-- JSDoc ContainerEntity <|-- ScopingEntity TEntityCreator <|.. FamixTypeScriptModel TWithInterfaces <|.. ContainerEntity TClassMetrics <|.. Class Decorator "decorators*" -- "decoratedEntity" NamedEntity @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class Concretization <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean isDefinitelyAssigned Boolean isOptional Boolean readOnly } class TEntityCreator <<(T,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class Module <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class ImportClause <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } Entity <|-- Concretization Class <|-- ParametricClass ContainerEntity <|-- BehaviouralEntity SourcedEntity <|-- JSDoc Type <|-- ParameterType ContainerEntity <|-- Type Entity <|-- Implementation StructuralEntity <|-- EnumValue NamedEntity <|-- Alias StructuralEntity <|-- Parameter Function <|-- ParametricFunction Entity <|-- Invocation Type <|-- Class StructuralEntity <|-- Property Entity <|-- ParameterConcretization NamedEntity <|-- Decorator BehaviouralEntity <|-- ArrowFunction ArrowFunction <|-- ParametricArrowFunction ScriptEntity <|-- Module BehaviouralEntity <|-- Function BehaviouralEntity <|-- Method Entity <|-- Access Entity <|-- ImportClause SourcedEntity <|-- Comment SourceAnchor <|-- IndexedFileAnchor Entity <|-- Reference Entity <|-- SourcedEntity Interface <|-- ParametricInterface StructuralEntity <|-- Variable NamedEntity <|-- Folder Variable <|-- implicitVariable ScopingEntity <|-- Namespace Type <|-- Interface Entity <|-- Inheritance Method <|-- ParametricMethod ScopingEntity <|-- ScriptEntity Type <|-- PrimitiveType Method <|-- Accessor ContainerEntity <|-- ScopingEntity NamedEntity <|-- File NamedEntity <|-- StructuralEntity SourcedEntity <|-- NamedEntity NamedEntity <|-- ContainerEntity SourceAnchor <|-- SourceTextAnchor Entity <|-- SourceLanguage Entity <|-- SourceAnchor Type <|-- Enum TClassMetrics <|.. Class TWithInterfaces <|.. ContainerEntity TEntityCreator <|.. FamixTypeScriptModel Decorator "decorators*" -- "decoratedEntity" NamedEntity @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.svg b/doc-uml/FamixTypeScript.svg index fccebe4..e5710fe 100644 --- a/doc-uml/FamixTypeScript.svg +++ b/doc-uml/FamixTypeScript.svg @@ -1 +1 @@ -InheritanceEnumValueImplementationimplicitVariableParametricMethodNamespaceScriptEntityReferenceModuleTypeVariableEntityFamixTypeScriptModelStructuralEntityContainerEntityEnumFileSourceAnchorParameterTypeIndexedFileAnchorBehaviouralEntityParametricClassTClassMetricsParametricArrowFunctionInterfaceSourceLanguageInvocationPrimitiveTypeAccessDecoratorString expressionSourcedEntityFolderFunctionClassTEntityCreatorNamedEntityParametricInterfaceImportClauseSourceTextAnchorAccessorAliasConcretizationMethodTWithInterfacesCommentBoolean isJSDocParameterConcretizationParameterPropertyBoolean isOptionalBoolean readOnlyBoolean isDefinitelyAssignedBoolean isJavaScriptPrivateArrowFunctionParametricFunctionJSDocScopingEntitydecorators*decoratedEntity \ No newline at end of file +ConcretizationJSDocBehaviouralEntityParametricClassParameterTypeEnumValueParameterTypeImplementationAliasTWithInterfacesParametricFunctionInvocationClassPropertyBoolean isJavaScriptPrivateBoolean isDefinitelyAssignedBoolean isOptionalBoolean readOnlyTEntityCreatorParameterConcretizationParametricArrowFunctionArrowFunctionDecoratorString expressionModuleFunctionMethodTClassMetricsAccessCommentBoolean isJSDocImportClauseIndexedFileAnchorReferenceSourcedEntityVariableFolderParametricInterfaceNamespaceimplicitVariableInterfaceInheritanceParametricMethodEntityScriptEntityPrimitiveTypeScopingEntityAccessorFileStructuralEntityNamedEntityContainerEntitySourceTextAnchorFamixTypeScriptModelSourceLanguageSourceAnchorEnumdecorators*decoratedEntity \ No newline at end of file From 554abd74ee7fdeb25cce97d37577bc82b5a20da0 Mon Sep 17 00:00:00 2001 From: "C. Fuhrman" Date: Thu, 1 Aug 2024 15:00:00 -0400 Subject: [PATCH 7/8] add isTypeScript (false) method in trait TSourceLanguage --- .../FamixTSourceLanguage.extension.st | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/Famix-TypeScript-Extensions/FamixTSourceLanguage.extension.st diff --git a/src/Famix-TypeScript-Extensions/FamixTSourceLanguage.extension.st b/src/Famix-TypeScript-Extensions/FamixTSourceLanguage.extension.st new file mode 100644 index 0000000..d35a0b9 --- /dev/null +++ b/src/Famix-TypeScript-Extensions/FamixTSourceLanguage.extension.st @@ -0,0 +1,6 @@ +Extension { #name : #FamixTSourceLanguage } + +{ #category : #'*Famix-TypeScript-Extensions' } +FamixTSourceLanguage >> isTypeScript [ + ^ false +] From a1ac43be3dd671a31ab3ed807ad91a394f384e7e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 1 Aug 2024 19:01:20 +0000 Subject: [PATCH 8/8] Update docs for branch Reference-TReference --- doc-uml/FamixTypeScript-traits.puml | 2 +- doc-uml/FamixTypeScript-traits.svg | 2 +- doc-uml/FamixTypeScript.puml | 2 +- doc-uml/FamixTypeScript.svg | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc-uml/FamixTypeScript-traits.puml b/doc-uml/FamixTypeScript-traits.puml index 128fb9e..471d2f7 100644 --- a/doc-uml/FamixTypeScript-traits.puml +++ b/doc-uml/FamixTypeScript-traits.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class Folder <<(C,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TImplementable <<(T,white)External>> #FFFFCC { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class PrimitiveType <<(C,white)>> #CCFFFF { } class TImportable <<(T,white)External>> #FFFFCC { } class THasVisibility <<(T,white)External>> #FFFFCC { String visibility Boolean isProtected Boolean isPublic Boolean isPackageVisibility Boolean isPrivate } class TCanImplement <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class TFunction <<(T,white)External>> #FFFFCC { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class Inheritance <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class Module <<(C,white)>> #CCFFFF { } class TImplementation <<(T,white)External>> #FFFFCC { } class Alias <<(C,white)>> #CCFFFF { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class JSDoc <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class TInvocable <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number tightClassCohesion Number weightedMethodCount Number numberOfAbstractMethods Number numberOfMethods } class Variable <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class TWithComments <<(T,white)External>> #FFFFCC { Boolean hasComments Number numberOfComments } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Decorator <<(C,white)>> #CCFFFF { String expression } class TNamespace <<(T,white)External>> #FFFFCC { } class Property <<(C,white)>> #CCFFFF { Boolean isOptional Boolean isDefinitelyAssigned Boolean readOnly Boolean isJavaScriptPrivate } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class THasKind <<(T,white)External>> #FFFFCC { String kind Boolean isSetter Boolean isGetter Boolean isConstant Boolean isConstructor } class TFile <<(T,white)External>> #FFFFCC { Number numberOfBytes Number numberOfEmptyLinesOfText Number averageNumberOfCharactersPerLine Number numberOfKiloBytes Number numberOfCharacters Number totalNumberOfLinesOfText } class ScopingEntity <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isRead Boolean isReadWriteUnknown Boolean isWrite } class Class <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TSourceEntity <<(T,white)External>> #FFFFCC { Number numberOfLinesOfCodeWithMoreThanOneCharacter Boolean containsReplicas String sourceText Number numberOfLinesOfCode Boolean isStub Number duplicationRate } class ContainerEntity <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number numberOfExternalProviders Boolean isDead Number numberOfExternalClients Number numberOfInternalClients Number fanIn Number numberOfInternalProviders Boolean isRoot Number numberOfChildren Number fanOut Number numberOfDeadChildren } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TImport <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Model <<(C,white)External>> #FFFFCC { Number numberOfClassesPerPackage Number numberOfModelMethods Number numberOfLinesOfCodePerPackage Number averageCyclomaticComplexity Number numberOfClassesPerPackage Number numberOfMethods Number numberOfClasses Number numberOfLinesOfCodePerClass Number numberOfLinesOfCode Number numberOfLinesOfCodePerMethod Number numberOfModelClasses } class Invocation <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class TEnum <<(T,white)External>> #FFFFCC { } class TInvocation <<(T,white)External>> #FFFFCC { } class ParametricMethod <<(C,white)>> #CCFFFF { } class TConcretization <<(T,white)External>> #FFFFCC { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class Function <<(C,white)>> #CCFFFF { } class TTypedEntity <<(T,white)External>> #FFFFCC { } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class Enum <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfFiles Number numberOfEmptyLinesOfText Number numberOfFolders Number totalNumberOfLinesOfText } class TClass <<(T,white)External>> #FFFFCC { Boolean isTestCase Number weightOfAClass } class TParametricEntity <<(T,white)External>> #FFFFCC { } class Parameter <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class TParameter <<(T,white)External>> #FFFFCC { } class Entity <<(C,white)External>> #FFFFCC { Boolean isTagged Number numberOfTags Boolean isDead } class TType <<(T,white)External>> #FFFFCC { } class TWithTypes <<(T,white)External>> #FFFFCC { } class ParameterType <<(C,white)>> #CCFFFF { } class TComment <<(T,white)External>> #FFFFCC { String content } class SourcedEntity <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TReference <<(T,white)External>> #FFFFCC { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class ScriptEntity <<(C,white)>> #CCFFFF { } class TWithImports <<(T,white)External>> #FFFFCC { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TInheritance <<(T,white)External>> #FFFFCC { } class TMethod <<(T,white)External>> #FFFFCC { } class File <<(C,white)>> #CCFFFF { } class TWithAccesses <<(T,white)External>> #FFFFCC { } class Method <<(C,white)>> #CCFFFF { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom3 Number lcom2 } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfLocallyDefinedMethods Number totalNumberOfSubclasses Number numberOfMethodsInHierarchy Number numberOfMethodsOverridden Number numberOfMethodsInherited Number numberOfAttributesInherited } class implicitVariable <<(C,white)>> #CCFFFF { } class TEnumValue <<(T,white)External>> #FFFFCC { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number subclassHierarchyDepth Number hierarchyNestingLevel Number numberOfDirectSubclasses Number numberOfSubclasses } class ParametricFunction <<(C,white)>> #CCFFFF { } Function <|-- ParametricFunction BehaviouralEntity <|-- Method NamedEntity <|-- Folder Type <|-- PrimitiveType ContainerEntity <|-- Type SourcedEntity <|-- JSDoc Entity <|-- Inheritance ContainerEntity <|-- BehaviouralEntity ScriptEntity <|-- Module SourceAnchor <|-- IndexedFileAnchor Entity <|-- Entity SourcedEntity <|-- Comment StructuralEntity <|-- Property ContainerEntity <|-- ScopingEntity Type <|-- Class SourcedEntity <|-- NamedEntity NamedEntity <|-- ContainerEntity Type <|-- Interface Class <|-- ParametricClass Entity <|-- ImportClause Entity <|-- SourceLanguage Entity <|-- Implementation Entity <|-- SourceAnchor SourceAnchor <|-- SourceTextAnchor NamedEntity <|-- Decorator StructuralEntity <|-- Variable NamedEntity <|-- Alias Entity <|-- ParameterConcretization NamedEntity <|-- StructuralEntity Entity <|-- Access Entity <|-- Concretization AbstractGroup <|-- Model Entity <|-- Invocation StructuralEntity <|-- EnumValue Method <|-- ParametricMethod BehaviouralEntity <|-- Function Type <|-- Enum StructuralEntity <|-- Parameter Method <|-- Accessor Interface <|-- ParametricInterface Object <|-- Entity Type <|-- ParameterType ScopingEntity <|-- Namespace Entity <|-- SourcedEntity BehaviouralEntity <|-- ArrowFunction Entity <|-- Reference ScopingEntity <|-- ScriptEntity Model <|-- FamixTypeScriptModel ArrowFunction <|-- ParametricArrowFunction Variable <|-- implicitVariable NamedEntity <|-- File TParametricEntity <|.. ParametricFunction TSourceAnchor <|.. THasImmediateSource TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method TFolder <|.. Folder THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TPrimitiveType <|.. PrimitiveType TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TWithTypes <|.. TWithClasses TType <|.. TPrimitiveType TInheritance <|.. Inheritance TWithTypes <|.. TWithInterfaces TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TStructuralEntity <|.. TLocalVariable TIndexedFileNavigation <|.. IndexedFileAnchor TAssociation <|.. TImplementation TComment <|.. Comment TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TStructuralEntity <|.. TAttribute TFileSystemEntity <|.. TFile TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TAssociation <|.. TParameterConcretization TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TWithAccesses <|.. Class TWithInvocations <|.. Class TImplementable <|.. Interface TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TClassMetrics <|.. Class TAssociation <|.. TAccess TImport <|.. ImportClause TParametricEntity <|.. ParametricClass TSourceLanguage <|.. SourceLanguage TSourceAnchor <|.. SourceAnchor TImplementation <|.. Implementation THasImmediateSource <|.. SourceTextAnchor TImportable <|.. Decorator TImportable <|.. Variable TLocalVariable <|.. Variable TFileAnchor <|.. TIndexedFileNavigation TAssociation <|.. TImport TParameterConcretization <|.. ParameterConcretization TImportable <|.. Alias TStructuralEntity <|.. StructuralEntity TAccess <|.. Access TConcretization <|.. Concretization THasSignature <|.. Invocation TInvocation <|.. Invocation TEnumValue <|.. EnumValue TType <|.. TEnum TAssociation <|.. TInvocation THasSignature <|.. TInvocation TParametricEntity <|.. ParametricMethod TWithEnumValues <|.. TEnum TAssociation <|.. TConcretization TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TEnum <|.. Enum TImportable <|.. Enum TFileSystemEntity <|.. TFolder TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TParameter <|.. Parameter TParametricEntity <|.. ParametricInterface TType <|.. TConcreteParameterType TStructuralEntity <|.. TParameter TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TGenericParameterType <|.. ParameterType TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType TEntityMetaLevelDependency <|.. TComment TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TSourceEntity <|.. SourcedEntity TDefinedInModule <|.. ArrowFunction TFunction <|.. ArrowFunction TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TWithComments <|.. SourcedEntity TReference <|.. Reference TAssociation <|.. TReference TType <|.. TGenericParameterType TWithStatements <|.. ScriptEntity TEntityCreator <|.. FamixTypeScriptModel THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TParametricEntity <|.. ParametricArrowFunction TAssociation <|.. TInheritance TStructuralEntity <|.. TEnumValue TFile <|.. File TInvocable "candidates*" -- "incomingInvocations*" TInvocation TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TAttribute "attributes*" --o "parentType" TWithAttributes TAccess "accesses*" -- "accessor" TWithAccesses TConcretization "concretizations*" -- "genericEntity" TParametricEntity TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TInheritance "subInheritances*" -- "superclass" TWithInheritances TType "types*" --o "typeContainer" TWithTypes Model -- "sourceLanguage" TSourceLanguage TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TSourceEntity "element" -- "sourceAnchor" TSourceAnchor TConcretization "genericization" -- "concreteEntity" TParametricEntity TTypedEntity "typedEntities*" -- "declaredType" TType TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization TWithComments "commentedEntity" o-- "comments*" TComment TImport "outgoingImports*" -- "importingEntity" TWithImports TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType TWithMethods "parentType" o-- "methods*" TMethod TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation TImplementable "interface" -- "implementations*" TImplementation TInheritance "superInheritances*" -- "subclass" TWithInheritances TImportable "importedEntity" -- "incomingImports*" TImport TWithInvocations "sender" -- "outgoingInvocations*" TInvocation Decorator "decorators*" -- "decoratedEntity" NamedEntity TFunction "functions*" --o "functionOwner" TWithFunctions TParametricEntity "genericEntities*" -- "genericParameters*" TGenericParameterType @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class EnumValue <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsInHierarchy Number numberOfMethodsInherited Number numberOfAttributesInherited Number totalNumberOfSubclasses Number numberOfMethodsOverridden Number numberOfLocallyDefinedMethods } class ParametricClass <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class Variable <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class Entity <<(C,white)External>> #FFFFCC { Boolean isDead Boolean isTagged Number numberOfTags } class TImplementable <<(T,white)External>> #FFFFCC { } class TEntityCreator <<(T,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class StructuralEntity <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number fanIn Number numberOfDeadChildren Number numberOfChildren Number numberOfExternalClients Number numberOfInternalClients Number numberOfExternalProviders Boolean isRoot Number fanOut Boolean isDead Number numberOfInternalProviders } class ScopingEntity <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class TImportable <<(T,white)External>> #FFFFCC { } class TType <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class ParameterType <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfEmptyLinesOfText Number numberOfFiles Number totalNumberOfLinesOfText Number numberOfFolders } class TSourceEntity <<(T,white)External>> #FFFFCC { Number duplicationRate String sourceText Boolean isStub Boolean containsReplicas Number numberOfLinesOfCodeWithMoreThanOneCharacter Number numberOfLinesOfCode } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class ParametricFunction <<(C,white)>> #CCFFFF { } class TInvocation <<(T,white)External>> #FFFFCC { } class TReference <<(T,white)External>> #FFFFCC { } class ParametricMethod <<(C,white)>> #CCFFFF { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isWrite Boolean isRead Boolean isReadWriteUnknown } class SourcedEntity <<(C,white)>> #CCFFFF { } class TNamespace <<(T,white)External>> #FFFFCC { } class Namespace <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class TInheritance <<(T,white)External>> #FFFFCC { } class TMethod <<(T,white)External>> #FFFFCC { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TFunction <<(T,white)External>> #FFFFCC { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class TParameter <<(T,white)External>> #FFFFCC { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class Enum <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean isOptional Boolean isDefinitelyAssigned Boolean readOnly } class TWithAccesses <<(T,white)External>> #FFFFCC { } class ContainerEntity <<(C,white)>> #CCFFFF { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel Number numberOfDirectSubclasses Number numberOfSubclasses Number subclassHierarchyDepth } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom3 Number lcom2 } class SourceLanguage <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class Model <<(C,white)External>> #FFFFCC { Number numberOfClassesPerPackage Number numberOfLinesOfCodePerClass Number numberOfClasses Number averageCyclomaticComplexity Number numberOfLinesOfCode Number numberOfLinesOfCodePerMethod Number numberOfModelClasses Number numberOfClassesPerPackage Number numberOfModelMethods Number numberOfLinesOfCodePerPackage Number numberOfMethods } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPublic Boolean isProtected String visibility Boolean isPrivate Boolean isPackageVisibility } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TFile <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfEmptyLinesOfText Number numberOfBytes Number numberOfKiloBytes Number averageNumberOfCharactersPerLine Number numberOfCharacters } class Folder <<(C,white)>> #CCFFFF { } class TComment <<(T,white)External>> #FFFFCC { String content } class TEnum <<(T,white)External>> #FFFFCC { } class THasKind <<(T,white)External>> #FFFFCC { String kind Boolean isSetter Boolean isConstructor Boolean isGetter Boolean isConstant } class Alias <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class TParametricEntity <<(T,white)External>> #FFFFCC { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class ArrowFunction <<(C,white)>> #CCFFFF { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class ParametricInterface <<(C,white)>> #CCFFFF { } class TImport <<(T,white)External>> #FFFFCC { } class Entity <<(C,white)>> #CCFFFF { } class TTypedEntity <<(T,white)External>> #FFFFCC { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number tightClassCohesion Number numberOfMethods Number weightedMethodCount Number numberOfAbstractMethods } class Class <<(C,white)>> #CCFFFF { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TClassMetrics <<(T,white)>> #CCFFFF { } class TConcretization <<(T,white)External>> #FFFFCC { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TCanImplement <<(T,white)External>> #FFFFCC { } class Implementation <<(C,white)>> #CCFFFF { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TImplementation <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class TEnumValue <<(T,white)External>> #FFFFCC { } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TWithComments <<(T,white)External>> #FFFFCC { Boolean hasComments Number numberOfComments } class PrimitiveType <<(C,white)>> #CCFFFF { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TWithTypes <<(T,white)External>> #FFFFCC { } StructuralEntity <|-- EnumValue Entity <|-- Access Class <|-- ParametricClass StructuralEntity <|-- Parameter NamedEntity <|-- Decorator StructuralEntity <|-- Variable Object <|-- Entity NamedEntity <|-- StructuralEntity Variable <|-- implicitVariable ContainerEntity <|-- ScopingEntity Method <|-- Accessor Type <|-- ParameterType Type <|-- Interface NamedEntity <|-- File Entity <|-- SourceAnchor SourceAnchor <|-- IndexedFileAnchor ScriptEntity <|-- Module Function <|-- ParametricFunction Method <|-- ParametricMethod Entity <|-- SourcedEntity ScopingEntity <|-- ScriptEntity ScopingEntity <|-- Namespace Model <|-- FamixTypeScriptModel Type <|-- Enum Entity <|-- Inheritance SourceAnchor <|-- SourceTextAnchor BehaviouralEntity <|-- Method Entity <|-- Concretization StructuralEntity <|-- Property NamedEntity <|-- ContainerEntity BehaviouralEntity <|-- Function Entity <|-- SourceLanguage Entity <|-- ImportClause ContainerEntity <|-- Type AbstractGroup <|-- Model Entity <|-- Invocation NamedEntity <|-- Folder NamedEntity <|-- Alias SourcedEntity <|-- JSDoc Entity <|-- ParameterConcretization SourcedEntity <|-- NamedEntity BehaviouralEntity <|-- ArrowFunction Interface <|-- ParametricInterface Entity <|-- Entity SourcedEntity <|-- Comment Type <|-- Class ContainerEntity <|-- BehaviouralEntity Entity <|-- Implementation ArrowFunction <|-- ParametricArrowFunction Entity <|-- Reference Type <|-- PrimitiveType TEnumValue <|.. EnumValue TAccess <|.. Access TParametricEntity <|.. ParametricClass TParameter <|.. Parameter TImportable <|.. Decorator TImportable <|.. Variable TLocalVariable <|.. Variable TFileAnchor <|.. TIndexedFileNavigation TStructuralEntity <|.. StructuralEntity TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TType <|.. TPrimitiveType TStructuralEntity <|.. TLocalVariable TNamedEntity <|.. TType TReferenceable <|.. TType TGenericParameterType <|.. ParameterType TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TImplementable <|.. Interface TFile <|.. File TInvocationsReceiver <|.. Interface TSourceAnchor <|.. SourceAnchor TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TIndexedFileNavigation <|.. IndexedFileAnchor TImportable <|.. Module TFileSystemEntity <|.. TFolder TWithImports <|.. Module TWithLocalVariables <|.. Module TAssociation <|.. TReference TParametricEntity <|.. ParametricFunction TAssociation <|.. TAccess TAssociation <|.. TInvocation THasSignature <|.. TInvocation TParametricEntity <|.. ParametricMethod TSourceEntity <|.. SourcedEntity TWithComments <|.. SourcedEntity TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TWithStatements <|.. ScriptEntity TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TAssociation <|.. TInheritance THasSignature <|.. TMethod TEntityCreator <|.. FamixTypeScriptModel THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TEnum <|.. Enum TImportable <|.. Enum TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TInheritance <|.. Inheritance THasImmediateSource <|.. SourceTextAnchor TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method TConcretization <|.. Concretization THasKind <|.. Method THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TAttribute <|.. Property TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TCanBeClassSide <|.. Property THasVisibility <|.. Property TDefinedInModule <|.. Function TFunction <|.. Function TSourceLanguage <|.. SourceLanguage TImportable <|.. Function TInvocable <|.. Function TImport <|.. ImportClause TStructuralEntity <|.. TParameter TConcreteParameterType <|.. Type THasSignature <|.. Invocation TInvocation <|.. Invocation TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TFileSystemEntity <|.. TFile TImportable <|.. Type TType <|.. Type TFolder <|.. Folder TEntityMetaLevelDependency <|.. TComment TAssociation <|.. TParameterConcretization TImportable <|.. Alias TParameterConcretization <|.. ParameterConcretization TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TType <|.. TEnum TWithEnumValues <|.. TEnum TSourceAnchor <|.. THasImmediateSource TWithMethods <|.. Type TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TType <|.. TGenericParameterType TDefinedInModule <|.. ArrowFunction TParametricEntity <|.. ParametricInterface TFunction <|.. ArrowFunction TAssociation <|.. TImport TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TWithTypes <|.. TWithClasses TWithTypes <|.. TWithInterfaces TComment <|.. Comment TType <|.. TConcreteParameterType TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TAssociation <|.. TConcretization TImplementation <|.. Implementation TAssociation <|.. TImplementation TStructuralEntity <|.. TEnumValue TStructuralEntity <|.. TAttribute TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TParametricEntity <|.. ParametricArrowFunction TReference <|.. Reference TPrimitiveType <|.. PrimitiveType TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TImplementable "interface" -- "implementations*" TImplementation TWithInvocations "sender" -- "outgoingInvocations*" TInvocation TParametricEntity "genericEntity" -- "concretizations*" TConcretization TComment "comments*" --o "commentedEntity" TWithComments TMethod "methods*" --o "parentType" TWithMethods TWithFunctions "functionOwner" o-- "functions*" TFunction Decorator "decorators*" -- "decoratedEntity" NamedEntity Model -- "sourceLanguage" TSourceLanguage TImportable "importedEntity" -- "incomingImports*" TImport TType "declaredType" -- "typedEntities*" TTypedEntity TGenericParameterType "genericParameter" -- "concretizations*" TParameterConcretization TInheritance "subInheritances*" -- "superclass" TWithInheritances TInheritance "superInheritances*" -- "subclass" TWithInheritances TType "types*" --o "typeContainer" TWithTypes TWithAttributes "parentType" o-- "attributes*" TAttribute TParametricEntity "concreteEntity" -- "genericization" TConcretization TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization TImport "outgoingImports*" -- "importingEntity" TWithImports TInvocable "candidates*" -- "incomingInvocations*" TInvocation TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TInvocation "receivingInvocations*" -- "receiver" TInvocationsReceiver TAccess "accesses*" -- "accessor" TWithAccesses TGenericParameterType "genericParameters*" -- "genericEntities*" TParametricEntity TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TSourceEntity "element" -- "sourceAnchor" TSourceAnchor TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript-traits.svg b/doc-uml/FamixTypeScript-traits.svg index cdcd749..1b403b2 100644 --- a/doc-uml/FamixTypeScript-traits.svg +++ b/doc-uml/FamixTypeScript-traits.svg @@ -1 +1 @@ -Folder«External»TWithInvocationsNumber numberOfOutgoingInvocations«External»TInvocationsReceiver«External»TImplementable«External»THasSignatureString signaturePrimitiveType«External»TImportable«External»THasVisibilityString visibilityBoolean isProtectedBoolean isPublicBoolean isPackageVisibilityBoolean isPrivate«External»TCanImplementType«External»TDefinedInModule«External»TFunction«External»TPrimitiveTypeInheritanceTWithInterfacesBehaviouralEntity«External»TWithStatementsNumber numberOfStatementsModule«External»TImplementationAlias«External»TWithClassesNumber numberOfClassesJSDocIndexedFileAnchorImplementation«External»TIndexedFileNavigationNumber startPosNumber endPos«External»TInvocable«External»TWithMethodsNumber tightClassCohesionNumber weightedMethodCountNumber numberOfAbstractMethodsNumber numberOfMethodsVariable«External»EntityBoolean isTaggedNumber numberOfTagsBoolean isDead«External»TLocalVariable«External»TWithCommentsBoolean hasCommentsNumber numberOfCommentsCommentBoolean isJSDocDecoratorString expression«External»TNamespacePropertyBoolean isOptionalBoolean isDefinitelyAssignedBoolean readOnlyBoolean isJavaScriptPrivate«External»TAttributeNumber hierarchyNestingLevel«External»THasKindString kindBoolean isSetterBoolean isGetterBoolean isConstantBoolean isConstructor«External»TFileNumber numberOfBytesNumber numberOfEmptyLinesOfTextNumber averageNumberOfCharactersPerLineNumber numberOfKiloBytesNumber numberOfCharactersNumber totalNumberOfLinesOfTextScopingEntityParametricClassSourceLanguage«External»TParameterConcretization«External»TAccessBoolean isReadBoolean isReadWriteUnknownBoolean isWriteClassNamedEntity«External»TWithFunctions«External»TCanBeAbstractBoolean isAbstract«External»TSourceEntityNumber numberOfLinesOfCodeWithMoreThanOneCharacterBoolean containsReplicasString sourceTextNumber numberOfLinesOfCodeBoolean isStubNumber duplicationRateContainerEntityStructuralEntity«External»TEntityMetaLevelDependencyNumber numberOfExternalProvidersBoolean isDeadNumber numberOfExternalClientsNumber numberOfInternalClientsNumber fanInNumber numberOfInternalProvidersBoolean isRootNumber numberOfChildrenNumber fanOutNumber numberOfDeadChildren«External»TWithLocalVariables«External»TImportInterfaceSourceTextAnchorImportClauseSourceAnchorParameterConcretizationTEntityCreatorAccessConcretization«External»ModelNumber numberOfClassesPerPackageNumber numberOfModelMethodsNumber numberOfLinesOfCodePerPackageNumber averageCyclomaticComplexityNumber numberOfClassesPerPackageNumber numberOfMethodsNumber numberOfClassesNumber numberOfLinesOfCodePerClassNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerMethodNumber numberOfModelClassesInvocationEnumValue«External»TEnum«External»TInvocationParametricMethod«External»TConcretization«External»TWithAttributesNumber numberOfAttributesFunction«External»TTypedEntity«External»TStructuralEntityEnum«External»TSourceLanguage«External»TFolderNumber numberOfFilesNumber numberOfEmptyLinesOfTextNumber numberOfFoldersNumber totalNumberOfLinesOfText«External»TClassBoolean isTestCaseNumber weightOfAClass«External»TParametricEntityParameterAccessorParametricInterface«External»TConcreteParameterType«External»TParameter«External»TType«External»TWithTypesParameterType«External»TCommentString contentSourcedEntity«External»TClassMetricsNumber numberOfLocallyDefinedMethodsNumber totalNumberOfSubclassesNumber numberOfMethodsInHierarchyNumber numberOfMethodsOverriddenNumber numberOfMethodsInheritedNumber numberOfAttributesInheritedNamespaceArrowFunctionReference«External»TReference«External»TGenericParameterTypeScriptEntity«External»TWithImports«External»TNamedEntityString nameFamixTypeScriptModel«External»TInheritance«External»TMethodFile«External»TWithAccessesMethod«External»THasImmediateSourceString source«External»TCanBeClassSideBoolean isClassSideParametricArrowFunction«External»TLCOMMetricsNumber lcom3Number lcom2«External»TSourceAnchorNumber lineCountimplicitVariable«External»TEnumValue«External»TWithInheritancesNumber subclassHierarchyDepthNumber hierarchyNestingLevelNumber numberOfDirectSubclassesNumber numberOfSubclassesParametricFunctionAbstractGroupObjectTWithParametersTWithReferencesTAssociationTFileSystemEntityTFileAnchorTWithEnumValuesTAccessibleTReferenceableTMethodMetricsTWithImplicitVariablesdecorators*decoratedEntitycandidates*incomingInvocations*localVariables*parentBehaviouralEntityattributes*parentTypeaccesses*accessorconcretizations*genericEntitygenericizationconcreteEntityconcreteEntities*concreteParameters*subInheritances*superclasssuperInheritances*subclasstypes*typeContainersourceLanguagegenerics*concreteParameterelementsourceAnchortypedEntities*declaredTypeparameterConcretizations*concretizations*commentedEntitycomments*outgoingImports*importingEntityconcretizations*genericParameterparentTypemethods*implementingClassinterfaceImplementations*receiverreceivingInvocations*interfaceimplementations*importedEntityincomingImports*senderoutgoingInvocations*functions*functionOwnergenericEntities*genericParameters* \ No newline at end of file +EnumValueAccess«External»TCanBeAbstractBoolean isAbstractTClassMetricsNumber numberOfMethodsInHierarchyNumber numberOfMethodsInheritedNumber numberOfAttributesInheritedNumber totalNumberOfSubclassesNumber numberOfMethodsOverriddenNumber numberOfLocallyDefinedMethodsParametricClassParameterDecoratorString expressionVariable«External»TInvocableEntityBoolean isDeadBoolean isTaggedNumber numberOfTags«External»TImplementableTEntityCreator«External»TIndexedFileNavigationNumber startPosNumber endPosStructuralEntityimplicitVariable«External»TWithInvocationsNumber numberOfOutgoingInvocations«External»TEntityMetaLevelDependencyNumber fanInNumber numberOfDeadChildrenNumber numberOfChildrenNumber numberOfExternalClientsNumber numberOfInternalClientsNumber numberOfExternalProvidersBoolean isRootNumber fanOutBoolean isDeadNumber numberOfInternalProvidersScopingEntityAccessor«External»TPrimitiveType«External»TLocalVariable«External»TImportable«External»TTypeInterface«External»TWithFunctionsParameterTypeFileIndexedFileAnchorSourceAnchorModule«External»TFolderNumber numberOfEmptyLinesOfTextNumber numberOfFilesNumber totalNumberOfLinesOfTextNumber numberOfFolders«External»TSourceEntityNumber duplicationRateString sourceTextBoolean isStubBoolean containsReplicasNumber numberOfLinesOfCodeWithMoreThanOneCharacterNumber numberOfLinesOfCode«External»TNamedEntityString nameParametricFunction«External»TInvocation«External»TReferenceParametricMethod«External»TAccessBoolean isWriteBoolean isReadBoolean isReadWriteUnknownSourcedEntity«External»TNamespaceNamespaceScriptEntity«External»TInheritance«External»TMethodFamixTypeScriptModel«External»TFunction«External»TSourceLanguageTypeNamedEntity«External»TParameter«External»TDefinedInModuleEnumFunctionInheritanceSourceTextAnchorMethodConcretizationPropertyBoolean isJavaScriptPrivateBoolean isOptionalBoolean isDefinitelyAssignedBoolean readOnly«External»TWithAccessesContainerEntity«External»TWithInheritancesNumber hierarchyNestingLevelNumber numberOfDirectSubclassesNumber numberOfSubclassesNumber subclassHierarchyDepth«External»TLCOMMetricsNumber lcom3Number lcom2SourceLanguageImportClauseInvocation«External»ModelNumber numberOfClassesPerPackageNumber numberOfLinesOfCodePerClassNumber numberOfClassesNumber averageCyclomaticComplexityNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerMethodNumber numberOfModelClassesNumber numberOfClassesPerPackageNumber numberOfModelMethodsNumber numberOfLinesOfCodePerPackageNumber numberOfMethods«External»TWithAttributesNumber numberOfAttributes«External»THasVisibilityBoolean isPublicBoolean isProtectedString visibilityBoolean isPrivateBoolean isPackageVisibility«External»TStructuralEntity«External»TGenericParameterType«External»TFileNumber totalNumberOfLinesOfTextNumber numberOfEmptyLinesOfTextNumber numberOfBytesNumber numberOfKiloBytesNumber averageNumberOfCharactersPerLineNumber numberOfCharactersFolder«External»TCommentString content«External»TEnum«External»THasKindString kindBoolean isSetterBoolean isConstructorBoolean isGetterBoolean isConstantAliasJSDoc«External»TParametricEntityParameterConcretization«External»TWithStatementsNumber numberOfStatements«External»THasImmediateSourceString source«External»TParameterConcretizationArrowFunction«External»TWithClassesNumber numberOfClassesParametricInterface«External»TImport«External»TTypedEntityTWithInterfacesCommentBoolean isJSDoc«External»TConcreteParameterType«External»TWithMethodsNumber tightClassCohesionNumber numberOfMethodsNumber weightedMethodCountNumber numberOfAbstractMethodsClass«External»THasSignatureString signature«External»TConcretizationBehaviouralEntity«External»TCanImplementImplementation«External»TCanBeClassSideBoolean isClassSide«External»TImplementation«External»TWithImports«External»TClassNumber weightOfAClassBoolean isTestCase«External»TAttributeNumber hierarchyNestingLevel«External»TEnumValue«External»TSourceAnchorNumber lineCountParametricArrowFunctionReference«External»TWithCommentsBoolean hasCommentsNumber numberOfCommentsPrimitiveType«External»TInvocationsReceiver«External»TWithLocalVariables«External»TWithTypesObjectAbstractGroupTFileAnchorTReferenceableTFileSystemEntityTAssociationTWithParametersTMethodMetricsTWithImplicitVariablesTAccessibleTWithReferencesTWithEnumValuesdecorators*decoratedEntitygenerics*concreteParameterinterfaceimplementations*senderoutgoingInvocations*genericEntityconcretizations*concreteEntitygenericizationcomments*commentedEntitymethods*parentTypefunctionOwnerfunctions*sourceLanguageimportedEntityincomingImports*declaredTypetypedEntities*genericParameterconcretizations*subInheritances*superclasssuperInheritances*subclasstypes*typeContainerparentTypeattributes*parameterConcretizations*concretizations*outgoingImports*importingEntitycandidates*incomingInvocations*localVariables*parentBehaviouralEntityreceivingInvocations*receiveraccesses*accessorgenericParameters*genericEntities*concreteEntities*concreteParameters*elementsourceAnchorimplementingClassinterfaceImplementations* \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.puml b/doc-uml/FamixTypeScript.puml index ecdbaa2..b7abe14 100644 --- a/doc-uml/FamixTypeScript.puml +++ b/doc-uml/FamixTypeScript.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class Concretization <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean isDefinitelyAssigned Boolean isOptional Boolean readOnly } class TEntityCreator <<(T,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class Module <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class ImportClause <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } Entity <|-- Concretization Class <|-- ParametricClass ContainerEntity <|-- BehaviouralEntity SourcedEntity <|-- JSDoc Type <|-- ParameterType ContainerEntity <|-- Type Entity <|-- Implementation StructuralEntity <|-- EnumValue NamedEntity <|-- Alias StructuralEntity <|-- Parameter Function <|-- ParametricFunction Entity <|-- Invocation Type <|-- Class StructuralEntity <|-- Property Entity <|-- ParameterConcretization NamedEntity <|-- Decorator BehaviouralEntity <|-- ArrowFunction ArrowFunction <|-- ParametricArrowFunction ScriptEntity <|-- Module BehaviouralEntity <|-- Function BehaviouralEntity <|-- Method Entity <|-- Access Entity <|-- ImportClause SourcedEntity <|-- Comment SourceAnchor <|-- IndexedFileAnchor Entity <|-- Reference Entity <|-- SourcedEntity Interface <|-- ParametricInterface StructuralEntity <|-- Variable NamedEntity <|-- Folder Variable <|-- implicitVariable ScopingEntity <|-- Namespace Type <|-- Interface Entity <|-- Inheritance Method <|-- ParametricMethod ScopingEntity <|-- ScriptEntity Type <|-- PrimitiveType Method <|-- Accessor ContainerEntity <|-- ScopingEntity NamedEntity <|-- File NamedEntity <|-- StructuralEntity SourcedEntity <|-- NamedEntity NamedEntity <|-- ContainerEntity SourceAnchor <|-- SourceTextAnchor Entity <|-- SourceLanguage Entity <|-- SourceAnchor Type <|-- Enum TClassMetrics <|.. Class TWithInterfaces <|.. ContainerEntity TEntityCreator <|.. FamixTypeScriptModel Decorator "decorators*" -- "decoratedEntity" NamedEntity @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class ParameterConcretization <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isDefinitelyAssigned Boolean isOptional Boolean readOnly Boolean isJavaScriptPrivate } class Inheritance <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Class <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } Entity <|-- Concretization ScriptEntity <|-- Module Type <|-- Interface Entity <|-- Implementation Type <|-- ParameterType SourceAnchor <|-- IndexedFileAnchor SourceAnchor <|-- SourceTextAnchor Type <|-- PrimitiveType Entity <|-- Access NamedEntity <|-- StructuralEntity SourcedEntity <|-- NamedEntity StructuralEntity <|-- Parameter NamedEntity <|-- File ScopingEntity <|-- ScriptEntity Variable <|-- implicitVariable Entity <|-- Reference NamedEntity <|-- ContainerEntity Type <|-- Enum BehaviouralEntity <|-- Method Method <|-- Accessor ArrowFunction <|-- ParametricArrowFunction Interface <|-- ParametricInterface NamedEntity <|-- Alias ContainerEntity <|-- Type Class <|-- ParametricClass Method <|-- ParametricMethod Entity <|-- ParameterConcretization NamedEntity <|-- Decorator ContainerEntity <|-- BehaviouralEntity Entity <|-- SourceAnchor StructuralEntity <|-- Variable NamedEntity <|-- Folder StructuralEntity <|-- Property Entity <|-- Inheritance SourcedEntity <|-- Comment Type <|-- Class Entity <|-- SourceLanguage ContainerEntity <|-- ScopingEntity BehaviouralEntity <|-- ArrowFunction SourcedEntity <|-- JSDoc BehaviouralEntity <|-- Function StructuralEntity <|-- EnumValue Entity <|-- SourcedEntity Function <|-- ParametricFunction Entity <|-- Invocation Entity <|-- ImportClause ScopingEntity <|-- Namespace TEntityCreator <|.. FamixTypeScriptModel TWithInterfaces <|.. ContainerEntity TClassMetrics <|.. Class NamedEntity "decoratedEntity" -- "decorators*" Decorator @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.svg b/doc-uml/FamixTypeScript.svg index e5710fe..0b7e2d8 100644 --- a/doc-uml/FamixTypeScript.svg +++ b/doc-uml/FamixTypeScript.svg @@ -1 +1 @@ -ConcretizationJSDocBehaviouralEntityParametricClassParameterTypeEnumValueParameterTypeImplementationAliasTWithInterfacesParametricFunctionInvocationClassPropertyBoolean isJavaScriptPrivateBoolean isDefinitelyAssignedBoolean isOptionalBoolean readOnlyTEntityCreatorParameterConcretizationParametricArrowFunctionArrowFunctionDecoratorString expressionModuleFunctionMethodTClassMetricsAccessCommentBoolean isJSDocImportClauseIndexedFileAnchorReferenceSourcedEntityVariableFolderParametricInterfaceNamespaceimplicitVariableInterfaceInheritanceParametricMethodEntityScriptEntityPrimitiveTypeScopingEntityAccessorFileStructuralEntityNamedEntityContainerEntitySourceTextAnchorFamixTypeScriptModelSourceLanguageSourceAnchorEnumdecorators*decoratedEntity \ No newline at end of file +TWithInterfacesConcretizationModuleFamixTypeScriptModelImplementationInterfaceParameterTypeTClassMetricsIndexedFileAnchorSourceTextAnchorPrimitiveTypeAccessStructuralEntityNamedEntityParameterimplicitVariableMethodFileEntityScriptEntityReferenceContainerEntityEnumAccessorParametricArrowFunctionTEntityCreatorParametricInterfaceTypeAliasParametricClassParametricMethodDecoratorString expressionParameterConcretizationSourceAnchorBehaviouralEntityVariableFolderPropertyBoolean isDefinitelyAssignedBoolean isOptionalBoolean readOnlyBoolean isJavaScriptPrivateInheritanceCommentBoolean isJSDocClassSourceLanguageScopingEntityArrowFunctionJSDocEnumValueSourcedEntityFunctionInvocationParametricFunctionImportClauseNamespacedecoratedEntitydecorators* \ No newline at end of file