From 355eec4b050168096a1bdbb80bfc3dfb72e9da44 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 12 Jun 2024 13:17:14 +0000 Subject: [PATCH 1/4] Update docs for branch M11-migration --- 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 3da228b..49db048 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 TInheritance <<(T,white)External>> #FFFFCC { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TWithMethods <<(T,white)External>> #FFFFCC { Number numberOfMethods Number tightClassCohesion Number numberOfAbstractMethods Number weightedMethodCount } class TSourceEntity <<(T,white)External>> #FFFFCC { String sourceText Number numberOfLinesOfCode Boolean isStub Number duplicationRate Boolean containsReplicas Number numberOfLinesOfCodeWithMoreThanOneCharacter } class Parameter <<(C,white)>> #CCFFFF { } class THasKind <<(T,white)External>> #FFFFCC { Boolean isConstructor Boolean isConstant Boolean isGetter String kind Boolean isSetter } class TImportable <<(T,white)External>> #FFFFCC { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class Method <<(C,white)>> #CCFFFF { } class Entity <<(C,white)External>> #FFFFCC { Boolean isDead Number numberOfTags Boolean isTagged } class Accessor <<(C,white)>> #CCFFFF { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class Namespace <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class Concretization <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { } class TInvocation <<(T,white)External>> #FFFFCC { } class Invocation <<(C,white)>> #CCFFFF { } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPublic Boolean isPrivate Boolean isPackageVisibility Boolean isProtected String visibility } class ParametricInterface <<(C,white)>> #CCFFFF { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class TComment <<(T,white)External>> #FFFFCC { String content } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class VariableStatement <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class TWithAccesses <<(T,white)External>> #FFFFCC { } class TFunction <<(T,white)External>> #FFFFCC { } class TNamespace <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class TCanImplement <<(T,white)External>> #FFFFCC { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class ParametricMethod <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class TConcretization <<(T,white)External>> #FFFFCC { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class Entity <<(C,white)>> #CCFFFF { } class Import <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class TParameter <<(T,white)External>> #FFFFCC { } class ParametricClass <<(C,white)>> #CCFFFF { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number numberOfSubclasses Number hierarchyNestingLevel Number subclassHierarchyDepth Number numberOfDirectSubclasses } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class Module <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class TParametricEntity <<(T,white)External>> #FFFFCC { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class TImport <<(T,white)External>> #FFFFCC { } class Function <<(C,white)>> #CCFFFF { } class TMethod <<(T,white)External>> #FFFFCC { } class Class <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfFiles Number numberOfEmptyLinesOfText Number numberOfFolders Number totalNumberOfLinesOfText } class JSDoc <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number fanIn Number numberOfChildren Boolean isRoot Number numberOfDeadChildren Number numberOfInternalClients Number numberOfExternalClients Number numberOfInternalProviders Boolean isDead Number numberOfExternalProviders Number fanOut } class Alias <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class TEnum <<(T,white)External>> #FFFFCC { } class Enum <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isWrite Boolean isReadWriteUnknown Boolean isRead } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number endPos Number startPos } class File <<(C,white)>> #CCFFFF { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class ParameterType <<(C,white)>> #CCFFFF { } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class TImplementable <<(T,white)External>> #FFFFCC { } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom2 Number lcom3 } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TWithTypes <<(T,white)External>> #FFFFCC { } class NamedEntity <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class implicitVariable <<(C,white)>> #CCFFFF { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TEnumValue <<(T,white)External>> #FFFFCC { } class TWithComments <<(T,white)External>> #FFFFCC { Number numberOfComments Boolean hasComments } class TWithAnnotationTypes <<(T,white)External>> #FFFFCC { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class Access <<(C,white)>> #CCFFFF { } class TType <<(T,white)External>> #FFFFCC { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class TFile <<(T,white)External>> #FFFFCC { Number numberOfBytes Number averageNumberOfCharactersPerLine Number totalNumberOfLinesOfText Number numberOfEmptyLinesOfText Number numberOfKiloBytes Number numberOfCharacters } class TEntityCreator <<(T,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class TImplementation <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsOverridden Number totalNumberOfSubclasses Number numberOfLocallyDefinedMethods Number numberOfMethodsInherited Number numberOfMethodsInHierarchy Number numberOfAttributesInherited } class Model <<(C,white)External>> #FFFFCC { Number numberOfModelClasses Number numberOfClassesPerPackage Number numberOfLinesOfCode Number numberOfModelMethods Number numberOfClassesPerPackage Number averageCyclomaticComplexity Number numberOfMethods Number numberOfLinesOfCodePerMethod Number numberOfLinesOfCodePerClass Number numberOfClasses Number numberOfLinesOfCodePerPackage } class SourceLanguage <<(C,white)>> #CCFFFF { } NamedEntity <|-- Parameter ContainerEntity <|-- Method Object <|-- Entity Method <|-- Accessor ContainerEntity <|-- Namespace Entity <|-- Concretization Entity <|-- Invocation SourceAnchor <|-- IndexedFileAnchor Interface <|-- ParametricInterface NamedEntity <|-- Variable NamedEntity <|-- EnumValue Type <|-- VariableStatement SourcedEntity <|-- Comment NamedEntity <|-- Property Entity <|-- Implementation Type <|-- Interface Method <|-- ParametricMethod Entity <|-- Entity Entity <|-- Import ScriptEntity <|-- Module Class <|-- ParametricClass Entity <|-- Inheritance NamedEntity <|-- Decorator ContainerEntity <|-- Function Type <|-- Class Entity <|-- SourceAnchor SourceAnchor <|-- SourceTextAnchor Entity <|-- Reference NamedEntity <|-- Alias SourcedEntity <|-- JSDoc NamedEntity <|-- Folder Entity <|-- SourcedEntity Type <|-- Enum Type <|-- PrimitiveType Model <|-- FamixTypeScriptModel NamedEntity <|-- File Type <|-- ParameterType SourcedEntity <|-- NamedEntity Variable <|-- implicitVariable Entity <|-- Access ContainerEntity <|-- ScriptEntity Entity <|-- ParameterConcretization NamedEntity <|-- ContainerEntity Function <|-- ParametricFunction ContainerEntity <|-- Type AbstractGroup <|-- Model Entity <|-- SourceLanguage TAssociation <|.. TInheritance TParameter <|.. Parameter TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TMethod <|.. Method TWithComments <|.. Method TType <|.. TGenericParameterType TDefinedInModule <|.. Namespace TInvocationsReceiver <|.. TClass TConcretization <|.. Concretization TType <|.. TClass TAssociation <|.. TInvocation THasSignature <|.. TInvocation THasSignature <|.. Invocation TInvocation <|.. Invocation TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TImportable <|.. Namespace TEntityMetaLevelDependency <|.. TComment TIndexedFileNavigation <|.. IndexedFileAnchor TNamespace <|.. Namespace TImportable <|.. Variable TLocalVariable <|.. Variable TEnumValue <|.. EnumValue TWithComments <|.. EnumValue TParametricEntity <|.. ParametricInterface TComment <|.. Comment TAttribute <|.. Property TCanBeClassSide <|.. Property TImplementation <|.. Implementation THasVisibility <|.. Property THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TImplementable <|.. Interface TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithComments <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TType <|.. TConcreteParameterType TParametricEntity <|.. ParametricMethod TAssociation <|.. TConcretization TSourceAnchor <|.. THasImmediateSource TImport <|.. Import TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TStructuralEntity <|.. TParameter TStructuralEntity <|.. TLocalVariable TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TParametricEntity <|.. ParametricClass TInheritance <|.. Inheritance TImportable <|.. Decorator TAssociation <|.. TImport TDefinedInModule <|.. Function TFunction <|.. Function TSourceAnchor <|.. SourceAnchor TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TImportable <|.. Function TInvocable <|.. Function THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod THasImmediateSource <|.. SourceTextAnchor TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TFileSystemEntity <|.. TFolder TImportable <|.. Alias TFolder <|.. Folder TSourceEntity <|.. SourcedEntity TType <|.. TEnum TWithEnumValues <|.. TEnum TEnum <|.. Enum TImportable <|.. Enum TWithComments <|.. Enum TPrimitiveType <|.. PrimitiveType TAssociation <|.. TAccess TEntityCreator <|.. FamixTypeScriptModel TType <|.. TPrimitiveType TFile <|.. File TAssociation <|.. TParameterConcretization TFileAnchor <|.. TIndexedFileNavigation TStructuralEntity <|.. TAttribute TGenericParameterType <|.. ParameterType TWithInheritances <|.. ParameterType TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TStructuralEntity <|.. TEnumValue TAccess <|.. Access TWithTypes <|.. TWithClasses TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TWithStatements <|.. ScriptEntity TWithTypes <|.. TWithInterfaces TParameterConcretization <|.. ParameterConcretization TWithAnnotationTypes <|.. ContainerEntity TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TFileSystemEntity <|.. TFile TParametricEntity <|.. ParametricFunction TAssociation <|.. TImplementation TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TSourceLanguage <|.. SourceLanguage Decorator "decorators*" -- "decoratedEntity" NamedEntity TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TConcretization "concretizations*" -- "genericEntity" TParametricEntity TSourceEntity "element" -- "sourceAnchor" TSourceAnchor TInvocation "outgoingInvocations*" -- "sender" TWithInvocations TWithAttributes "parentType" o-- "attributes*" TAttribute TGenericParameterType "genericParameter" -- "concretizations*" TParameterConcretization TFunction "functions*" --o "functionOwner" TWithFunctions TConcreteParameterType "concreteParameter" -- "generics*" TParameterConcretization TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TGenericParameterType "genericParameters*" -- "genericEntities*" TParametricEntity Model -- "sourceLanguage" TSourceLanguage TConcreteParameterType "concreteParameters*" -- "concreteEntities*" TParametricEntity TInheritance "superInheritances*" -- "subclass" TWithInheritances TInheritance "subInheritances*" -- "superclass" TWithInheritances TInvocation "incomingInvocations*" -- "candidates*" TInvocable TComment "comments*" --o "commentedEntity" TWithComments TWithAccesses "accessor" -- "accesses*" TAccess TConcretization "concretizations*" -- "parameterConcretizations*" TParameterConcretization TImport "outgoingImports*" -- "importingEntity" TWithImports TWithTypes "typeContainer" o-- "types*" TType TConcretization "genericization" -- "concreteEntity" TParametricEntity TInvocation "receivingInvocations*" -- "receiver" TInvocationsReceiver TImportable "importedEntity" -- "incomingImports*" TImport TWithMethods "parentType" o-- "methods*" TMethod TImplementable "interface" -- "implementations*" TImplementation @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class Model <<(C,white)External>> #FFFFCC { Number numberOfLinesOfCode Number numberOfLinesOfCodePerMethod Number numberOfClassesPerPackage Number numberOfLinesOfCodePerClass Number numberOfModelMethods Number numberOfClassesPerPackage Number numberOfModelClasses Number averageCyclomaticComplexity Number numberOfClasses Number numberOfLinesOfCodePerPackage Number numberOfMethods } class TFunction <<(T,white)External>> #FFFFCC { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class Entity <<(C,white)External>> #FFFFCC { Number numberOfTags Boolean isDead Boolean isTagged } class TParameter <<(T,white)External>> #FFFFCC { } class Alias <<(C,white)>> #CCFFFF { } class TEnum <<(T,white)External>> #FFFFCC { } class ParameterType <<(C,white)>> #CCFFFF { } class TWithTypes <<(T,white)External>> #FFFFCC { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isWrite Boolean isReadWriteUnknown Boolean isRead } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class Accessor <<(C,white)>> #CCFFFF { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class TWithMethods <<(T,white)External>> #FFFFCC { Number numberOfAbstractMethods Number weightedMethodCount Number tightClassCohesion Number numberOfMethods } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class Invocation <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class THasKind <<(T,white)External>> #FFFFCC { Boolean isGetter Boolean isConstructor Boolean isConstant Boolean isSetter String kind } class TEnumValue <<(T,white)External>> #FFFFCC { } class TWithComments <<(T,white)External>> #FFFFCC { Number numberOfComments Boolean hasComments } class ContainerEntity <<(C,white)>> #CCFFFF { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfFolders Number totalNumberOfLinesOfText Number numberOfFiles Number numberOfEmptyLinesOfText } class TWithAccesses <<(T,white)External>> #FFFFCC { } class Parameter <<(C,white)>> #CCFFFF { } class TParametricEntity <<(T,white)External>> #FFFFCC { } class TImplementable <<(T,white)External>> #FFFFCC { } class Property <<(C,white)>> #CCFFFF { } class Attribute <<(C,white)>> #CCFFFF { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class Function <<(C,white)>> #CCFFFF { } class Import <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { } class TCanBeFinal <<(T,white)External>> #FFFFCC { Boolean isFinal } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class Decorator <<(C,white)>> #CCFFFF { String expression } class TInheritance <<(T,white)External>> #FFFFCC { } class NamedEntity <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class VariableStatement <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class TImport <<(T,white)External>> #FFFFCC { } class TInvocation <<(T,white)External>> #FFFFCC { } class TWithAnnotationTypes <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsInHierarchy Number numberOfMethodsInherited Number totalNumberOfSubclasses Number numberOfMethodsOverridden Number numberOfLocallyDefinedMethods Number numberOfAttributesInherited } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class TEntityCreator <<(T,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class Reference <<(C,white)>> #CCFFFF { } class THasVisibility <<(T,white)External>> #FFFFCC { String visibility Boolean isPackageVisibility Boolean isPublic Boolean isPrivate Boolean isProtected } class TNamespace <<(T,white)External>> #FFFFCC { } class ParametricFunction <<(C,white)>> #CCFFFF { } class TMethod <<(T,white)External>> #FFFFCC { } class PrimitiveType <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class TConcretization <<(T,white)External>> #FFFFCC { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number numberOfDirectSubclasses Number numberOfSubclasses Number subclassHierarchyDepth Number hierarchyNestingLevel } class ParametricMethod <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TType <<(T,white)External>> #FFFFCC { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TSourceEntity <<(T,white)External>> #FFFFCC { Number duplicationRate Boolean containsReplicas Boolean isStub Number numberOfLinesOfCodeWithMoreThanOneCharacter Number numberOfLinesOfCode String sourceText } class Implementation <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class TCanImplement <<(T,white)External>> #FFFFCC { } class ParametricInterface <<(C,white)>> #CCFFFF { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TFile <<(T,white)External>> #FFFFCC { Number numberOfBytes Number averageNumberOfCharactersPerLine Number numberOfKiloBytes Number numberOfCharacters Number numberOfEmptyLinesOfText Number totalNumberOfLinesOfText } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class TImplementation <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number numberOfDeadChildren Boolean isDead Number numberOfExternalProviders Number numberOfInternalProviders Number numberOfInternalClients Number numberOfChildren Number fanOut Boolean isRoot Number fanIn Number numberOfExternalClients } class TImportable <<(T,white)External>> #FFFFCC { } class Method <<(C,white)>> #CCFFFF { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TComment <<(T,white)External>> #FFFFCC { String content } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom2 Number lcom3 } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class Namespace <<(C,white)>> #CCFFFF { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class Folder <<(C,white)>> #CCFFFF { } AbstractGroup <|-- Model Entity <|-- SourceLanguage Entity <|-- Access Class <|-- ParametricClass Object <|-- Entity NamedEntity <|-- Alias Type <|-- ParameterType Method <|-- Accessor Entity <|-- Invocation Type <|-- Class NamedEntity <|-- ContainerEntity NamedEntity <|-- Parameter NamedEntity <|-- Property NamedEntity <|-- Attribute ContainerEntity <|-- Function Entity <|-- Import SourcedEntity <|-- Comment NamedEntity <|-- Decorator SourcedEntity <|-- NamedEntity NamedEntity <|-- File ContainerEntity <|-- Type ContainerEntity <|-- ScriptEntity Type <|-- Interface Type <|-- VariableStatement Entity <|-- SourceAnchor NamedEntity <|-- Variable Entity <|-- Reference Function <|-- ParametricFunction Type <|-- PrimitiveType Variable <|-- implicitVariable ScriptEntity <|-- Module SourcedEntity <|-- JSDoc SourceAnchor <|-- SourceTextAnchor Entity <|-- Entity NamedEntity <|-- EnumValue Method <|-- ParametricMethod Type <|-- Enum Entity <|-- Inheritance Model <|-- FamixTypeScriptModel Entity <|-- Implementation SourceAnchor <|-- IndexedFileAnchor Interface <|-- ParametricInterface Entity <|-- Concretization Entity <|-- ParameterConcretization Entity <|-- SourcedEntity ContainerEntity <|-- Method ContainerEntity <|-- Namespace NamedEntity <|-- Folder THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TSourceLanguage <|.. SourceLanguage TAccess <|.. Access TParametricEntity <|.. ParametricClass TStructuralEntity <|.. TParameter TImportable <|.. Alias TGenericParameterType <|.. ParameterType TWithInheritances <|.. ParameterType TType <|.. TEnum TWithEnumValues <|.. TEnum TAssociation <|.. TAccess TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass THasSignature <|.. Invocation TInvocation <|.. Invocation TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TStructuralEntity <|.. TEnumValue TWithAnnotationTypes <|.. ContainerEntity TWithClasses <|.. ContainerEntity TFileSystemEntity <|.. TFolder TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TParameter <|.. Parameter TWithInterfaces <|.. ContainerEntity TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TStructuralEntity <|.. TLocalVariable TSourceAnchor <|.. THasImmediateSource TAttribute <|.. Attribute TCanBeClassSide <|.. Attribute TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TImport <|.. Import TComment <|.. Comment TCanBeFinal <|.. Attribute THasVisibility <|.. Attribute TInvocationsReceiver <|.. Attribute TWithComments <|.. Attribute TSourceEntity <|.. TWithStatements TImportable <|.. Decorator TAssociation <|.. TInheritance TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TFile <|.. File TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TWithStatements <|.. ScriptEntity TWithReferences <|.. TWithStatements TImplementable <|.. Interface TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithComments <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TAssociation <|.. TInvocation THasSignature <|.. TInvocation TSourceAnchor <|.. SourceAnchor TAssociation <|.. TImport TImportable <|.. Variable TLocalVariable <|.. Variable TWithTypes <|.. TWithClasses TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TParametricEntity <|.. ParametricFunction TPrimitiveType <|.. PrimitiveType THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TAssociation <|.. TConcretization THasImmediateSource <|.. SourceTextAnchor TEnumValue <|.. EnumValue TWithComments <|.. EnumValue TParametricEntity <|.. ParametricMethod TEnum <|.. Enum TImportable <|.. Enum TWithComments <|.. Enum TInheritance <|.. Inheritance TType <|.. TPrimitiveType TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TAssociation <|.. TParameterConcretization TEntityCreator <|.. FamixTypeScriptModel TImplementation <|.. Implementation TIndexedFileNavigation <|.. IndexedFileAnchor TType <|.. TGenericParameterType TParametricEntity <|.. ParametricInterface TFileSystemEntity <|.. TFile TWithTypes <|.. TWithInterfaces TConcretization <|.. Concretization TAssociation <|.. TImplementation TParameterConcretization <|.. ParameterConcretization TSourceEntity <|.. SourcedEntity TEntityMetaLevelDependency <|.. TComment TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TMethod <|.. Method TWithComments <|.. Method TStructuralEntity <|.. TAttribute TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TFileAnchor <|.. TIndexedFileNavigation TType <|.. TConcreteParameterType TFolder <|.. Folder TParametricEntity "concreteEntity" -- "genericization" TConcretization TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation TImport "incomingImports*" -- "importedEntity" TImportable TAccess "accesses*" -- "accessor" TWithAccesses TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TWithTypes "typeContainer" o-- "types*" TType TSourceAnchor "sourceAnchor" -- "element" TSourceEntity TWithMethods "parentType" o-- "methods*" TMethod TWithComments "commentedEntity" o-- "comments*" TComment TInvocation "incomingInvocations*" -- "candidates*" TInvocable TInheritance "superInheritances*" -- "subclass" TWithInheritances TInheritance "subInheritances*" -- "superclass" TWithInheritances TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TInvocation "outgoingInvocations*" -- "sender" TWithInvocations Decorator "decorators*" -- "decoratedEntity" NamedEntity TParametricEntity "genericEntity" -- "concretizations*" TConcretization TParametricEntity "genericEntities*" -- "genericParameters*" TGenericParameterType TFunction "functions*" --o "functionOwner" TWithFunctions TImport "outgoingImports*" -- "importingEntity" TWithImports TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType TWithAttributes "parentType" o-- "attributes*" TAttribute Model -- "sourceLanguage" TSourceLanguage TImplementable "interface" -- "implementations*" TImplementation TConcretization "concretizations*" -- "parameterConcretizations*" TParameterConcretization @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript-traits.svg b/doc-uml/FamixTypeScript-traits.svg index dce643d..6b2eb98 100644 --- a/doc-uml/FamixTypeScript-traits.svg +++ b/doc-uml/FamixTypeScript-traits.svg @@ -1 +1 @@ -«External»TInheritance«External»THasSignatureString signature«External»TWithMethodsNumber numberOfMethodsNumber tightClassCohesionNumber numberOfAbstractMethodsNumber weightedMethodCount«External»TSourceEntityString sourceTextNumber numberOfLinesOfCodeBoolean isStubNumber duplicationRateBoolean containsReplicasNumber numberOfLinesOfCodeWithMoreThanOneCharacterParameter«External»THasKindBoolean isConstructorBoolean isConstantBoolean isGetterString kindBoolean isSetter«External»TImportable«External»TWithAttributesNumber numberOfAttributesMethodEntityBoolean isDeadNumber numberOfTagsBoolean isTaggedAccessor«External»TGenericParameterTypeNamespace«External»TSourceLanguage«External»TClassNumber weightOfAClassBoolean isTestCaseConcretizationComment«External»TInvocationInvocation«External»THasVisibilityBoolean isPublicBoolean isPrivateBoolean isPackageVisibilityBoolean isProtectedString visibilityParametricInterface«External»TNamedEntityString name«External»TCommentString contentIndexedFileAnchorVariableEnumValueVariableStatementPropertyImplementation«External»TWithAccesses«External»TFunction«External»TNamespaceInterface«External»TDefinedInModule«External»TCanImplement«External»TConcreteParameterTypeParametricMethod«External»TClassMetricsNumber numberOfMethodsOverriddenNumber totalNumberOfSubclassesNumber numberOfLocallyDefinedMethodsNumber numberOfMethodsInheritedNumber numberOfMethodsInHierarchyNumber numberOfAttributesInherited«External»TWithInvocationsNumber numberOfOutgoingInvocations«External»TConcretization«External»THasImmediateSourceString sourceImport«External»TWithFunctions«External»TWithStatementsNumber numberOfStatements«External»TParameterParametricClass«External»TWithInheritancesNumber numberOfSubclassesNumber hierarchyNestingLevelNumber subclassHierarchyDepthNumber numberOfDirectSubclasses«External»TInvocationsReceiver«External»TLocalVariableModuleInheritance«External»TParametricEntityDecoratorString expression«External»TSourceAnchorNumber lineCount«External»TImportFunction«External»TMethodClassSourceAnchor«External»TFolderNumber numberOfFilesNumber numberOfEmptyLinesOfTextNumber numberOfFoldersNumber totalNumberOfLinesOfTextJSDocReferenceSourceTextAnchor«External»TEntityMetaLevelDependencyNumber fanInNumber numberOfChildrenBoolean isRootNumber numberOfDeadChildrenNumber numberOfInternalClientsNumber numberOfExternalClientsNumber numberOfInternalProvidersBoolean isDeadNumber numberOfExternalProvidersNumber fanOutAliasFolderSourcedEntity«External»TInvocable«External»TEnumEnumPrimitiveType«External»TAccessBoolean isWriteBoolean isReadWriteUnknownBoolean isReadFamixTypeScriptModel«External»TPrimitiveType«External»TIndexedFileNavigationNumber endPosNumber startPosFile«External»TParameterConcretizationParameterType«External»TAttributeNumber hierarchyNestingLevel«External»TImplementable«External»TLCOMMetricsNumber lcom2Number lcom3«External»TCanBeClassSideBoolean isClassSide«External»TWithTypesNamedEntity«External»TWithLocalVariables«External»TWithImportsimplicitVariable«External»TCanBeAbstractBoolean isAbstract«External»TEnumValue«External»TWithCommentsNumber numberOfCommentsBoolean hasComments«External»TWithAnnotationTypes«External»TWithClassesNumber numberOfClassesAccess«External»TTypeTWithInterfacesScriptEntityParameterConcretizationContainerEntity«External»TFileNumber numberOfBytesNumber averageNumberOfCharactersPerLineNumber totalNumberOfLinesOfTextNumber numberOfEmptyLinesOfTextNumber numberOfKiloBytesNumber numberOfCharactersTEntityCreatorParametricFunction«External»TImplementationType«External»ModelNumber numberOfModelClassesNumber numberOfClassesPerPackageNumber numberOfLinesOfCodeNumber numberOfModelMethodsNumber numberOfClassesPerPackageNumber averageCyclomaticComplexityNumber numberOfMethodsNumber numberOfLinesOfCodePerMethodNumber numberOfLinesOfCodePerClassNumber numberOfClassesNumber numberOfLinesOfCodePerPackageSourceLanguageObjectAbstractGroupTAssociationTTypedEntityTWithParametersTWithReferencesTStructuralEntityTMethodMetricsTWithImplicitVariablesTFileSystemEntityTWithEnumValuesTFileAnchorTReferenceabledecorators*decoratedEntityimplementingClassinterfaceImplementations*concretizations*genericEntitygenericizationconcreteEntityelementsourceAnchoroutgoingInvocations*senderparentTypeattributes*genericParameterconcretizations*functions*functionOwnerconcreteParametergenerics*localVariables*parentBehaviouralEntitygenericParameters*genericEntities*sourceLanguageconcreteParameters*concreteEntities*superInheritances*subclasssubInheritances*superclassincomingInvocations*candidates*comments*commentedEntityaccessoraccesses*concretizations*parameterConcretizations*outgoingImports*importingEntitytypeContainertypes*receivingInvocations*receiverimportedEntityincomingImports*parentTypemethods*interfaceimplementations* \ No newline at end of file +«External»ModelNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerMethodNumber numberOfClassesPerPackageNumber numberOfLinesOfCodePerClassNumber numberOfModelMethodsNumber numberOfClassesPerPackageNumber numberOfModelClassesNumber averageCyclomaticComplexityNumber numberOfClassesNumber numberOfLinesOfCodePerPackageNumber numberOfMethods«External»TFunctionSourceLanguageAccessParametricClassEntityNumber numberOfTagsBoolean isDeadBoolean isTagged«External»TParameterAlias«External»TEnumParameterType«External»TWithTypes«External»TCanBeClassSideBoolean isClassSide«External»TDefinedInModule«External»TAccessBoolean isWriteBoolean isReadWriteUnknownBoolean isRead«External»TSourceAnchorNumber lineCountAccessor«External»TWithAttributesNumber numberOfAttributes«External»TWithMethodsNumber numberOfAbstractMethodsNumber weightedMethodCountNumber tightClassCohesionNumber numberOfMethods«External»TClassNumber weightOfAClassBoolean isTestCaseInvocationClass«External»THasKindBoolean isGetterBoolean isConstructorBoolean isConstantBoolean isSetterString kind«External»TEnumValue«External»TWithCommentsNumber numberOfCommentsBoolean hasCommentsContainerEntity«External»THasSignatureString signature«External»TFolderNumber numberOfFoldersNumber totalNumberOfLinesOfTextNumber numberOfFilesNumber numberOfEmptyLinesOfText«External»TWithAccessesParameter«External»TParametricEntity«External»TImplementablePropertyAttribute«External»TLocalVariable«External»THasImmediateSourceString sourceFunctionImportComment«External»TCanBeFinalBoolean isFinal«External»TWithStatementsNumber numberOfStatementsDecoratorString expression«External»TInheritanceNamedEntity«External»TWithFunctionsTypeFileScriptEntity«External»TSourceLanguageInterfaceSourceAnchor«External»TInvocationsReceiverVariableStatementVariable«External»TImport«External»TInvocation«External»TWithAnnotationTypesTClassMetricsNumber numberOfMethodsInHierarchyNumber numberOfMethodsInheritedNumber totalNumberOfSubclassesNumber numberOfMethodsOverriddenNumber numberOfLocallyDefinedMethodsNumber numberOfAttributesInherited«External»TWithClassesNumber numberOfClassesTEntityCreator«External»TWithInvocationsNumber numberOfOutgoingInvocationsReference«External»THasVisibilityString visibilityBoolean isPackageVisibilityBoolean isPublicBoolean isPrivateBoolean isProtected«External»TNamespaceParametricFunction«External»TMethodPrimitiveTypeimplicitVariableModuleEnumValueJSDoc«External»TConcretizationSourceTextAnchor«External»TWithInheritancesNumber numberOfDirectSubclassesNumber numberOfSubclassesNumber subclassHierarchyDepthNumber hierarchyNestingLevelParametricMethodEnumInheritance«External»TInvocable«External»TPrimitiveType«External»TType«External»TParameterConcretizationFamixTypeScriptModel«External»TSourceEntityNumber duplicationRateBoolean containsReplicasBoolean isStubNumber numberOfLinesOfCodeWithMoreThanOneCharacterNumber numberOfLinesOfCodeString sourceTextImplementationIndexedFileAnchor«External»TWithLocalVariables«External»TNamedEntityString name«External»TCanImplementParametricInterface«External»TGenericParameterType«External»TFileNumber numberOfBytesNumber averageNumberOfCharactersPerLineNumber numberOfKiloBytesNumber numberOfCharactersNumber numberOfEmptyLinesOfTextNumber totalNumberOfLinesOfTextTWithInterfacesConcretization«External»TImplementation«External»TWithImportsParameterConcretizationSourcedEntity«External»TEntityMetaLevelDependencyNumber numberOfDeadChildrenBoolean isDeadNumber numberOfExternalProvidersNumber numberOfInternalProvidersNumber numberOfInternalClientsNumber numberOfChildrenNumber fanOutBoolean isRootNumber fanInNumber numberOfExternalClients«External»TImportableMethod«External»TCanBeAbstractBoolean isAbstract«External»TCommentString content«External»TAttributeNumber hierarchyNestingLevel«External»TLCOMMetricsNumber lcom2Number lcom3«External»TIndexedFileNavigationNumber startPosNumber endPosNamespace«External»TConcreteParameterTypeFolderAbstractGroupObjectTTypedEntityTWithParametersTStructuralEntityTWithEnumValuesTAssociationTFileSystemEntityTWithReferencesTMethodMetricsTWithImplicitVariablesTReferenceableTFileAnchordecorators*decoratedEntityconcreteEntitygenericizationgenericEntityconcretizations*generics*concreteParameterconcreteEntities*concreteParameters*receiverreceivingInvocations*incomingImports*importedEntityaccesses*accessorimplementingClassinterfaceImplementations*typeContainertypes*sourceAnchorelementparentTypemethods*commentedEntitycomments*incomingInvocations*candidates*superInheritances*subclasssubInheritances*superclasslocalVariables*parentBehaviouralEntityoutgoingInvocations*sendergenericEntities*genericParameters*functions*functionOwneroutgoingImports*importingEntityconcretizations*genericParameterparentTypeattributes*sourceLanguageinterfaceimplementations*concretizations*parameterConcretizations* \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.puml b/doc-uml/FamixTypeScript.puml index 621215b..a71e788 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 SourceTextAnchor <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class SourceAnchor <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class Import <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class VariableStatement <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } SourceAnchor <|-- SourceTextAnchor Type <|-- PrimitiveType Method <|-- Accessor ContainerEntity <|-- Type SourceAnchor <|-- IndexedFileAnchor Entity <|-- Invocation Type <|-- Enum NamedEntity <|-- Variable Interface <|-- ParametricInterface NamedEntity <|-- Property Class <|-- ParametricClass ContainerEntity <|-- Method ContainerEntity <|-- Namespace NamedEntity <|-- ContainerEntity SourcedEntity <|-- Comment NamedEntity <|-- Folder Type <|-- ParameterType Entity <|-- SourceLanguage Entity <|-- Implementation Function <|-- ParametricFunction Entity <|-- Access NamedEntity <|-- Alias Method <|-- ParametricMethod Type <|-- Class Variable <|-- implicitVariable Entity <|-- Reference ContainerEntity <|-- Function Entity <|-- SourcedEntity ContainerEntity <|-- ScriptEntity NamedEntity <|-- Decorator Entity <|-- SourceAnchor ScriptEntity <|-- Module NamedEntity <|-- EnumValue Entity <|-- Inheritance SourcedEntity <|-- JSDoc Entity <|-- Import Entity <|-- ParameterConcretization NamedEntity <|-- Parameter Type <|-- VariableStatement SourcedEntity <|-- NamedEntity Entity <|-- Concretization Type <|-- Interface NamedEntity <|-- File 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 Namespace <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class ParameterType <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Attribute <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Import <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { } class VariableStatement <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } SourceAnchor <|-- SourceTextAnchor ContainerEntity <|-- Namespace NamedEntity <|-- Decorator NamedEntity <|-- Variable Type <|-- ParameterType Type <|-- Class NamedEntity <|-- File Interface <|-- ParametricInterface SourcedEntity <|-- JSDoc Function <|-- ParametricFunction Entity <|-- SourceLanguage NamedEntity <|-- Attribute ContainerEntity <|-- Type Entity <|-- SourceAnchor Entity <|-- Inheritance SourceAnchor <|-- IndexedFileAnchor Entity <|-- Concretization ScriptEntity <|-- Module SourcedEntity <|-- NamedEntity NamedEntity <|-- ContainerEntity Method <|-- Accessor Entity <|-- Invocation Entity <|-- Reference NamedEntity <|-- Parameter Entity <|-- SourcedEntity Entity <|-- ParameterConcretization Entity <|-- Implementation Entity <|-- Import NamedEntity <|-- EnumValue Entity <|-- Access ContainerEntity <|-- Method Type <|-- Enum ContainerEntity <|-- Function NamedEntity <|-- Alias SourcedEntity <|-- Comment Type <|-- PrimitiveType Class <|-- ParametricClass Variable <|-- implicitVariable Method <|-- ParametricMethod NamedEntity <|-- Property Type <|-- VariableStatement NamedEntity <|-- Folder ContainerEntity <|-- ScriptEntity Type <|-- Interface 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 732101a..228e30d 100644 --- a/doc-uml/FamixTypeScript.svg +++ b/doc-uml/FamixTypeScript.svg @@ -1 +1 @@ -SourceTextAnchorPrimitiveTypeAccessorTypeIndexedFileAnchorEntityInvocationTClassMetricsEnumVariableParametricInterfacePropertyParametricClassNamespaceMethodContainerEntityCommentFamixTypeScriptModelFolderParameterTypeTEntityCreatorSourceLanguageImplementationParametricFunctionAccessAliasTWithInterfacesParametricMethodClassimplicitVariableReferenceFunctionSourcedEntityScriptEntityDecoratorString expressionSourceAnchorModuleEnumValueInheritanceJSDocImportParameterConcretizationParameterVariableStatementNamedEntityConcretizationInterfaceFiledecorators*decoratedEntity \ No newline at end of file +NamespaceSourceTextAnchorClassDecoratorString expressionParameterTypeVariableFileJSDocParametricInterfaceParametricFunctionSourceLanguageAttributeTypeSourceAnchorInheritanceEntityIndexedFileAnchorConcretizationModuleNamedEntityContainerEntityAccessorInvocationReferenceParameterSourcedEntityParameterConcretizationImplementationTEntityCreatorFamixTypeScriptModelImportTClassMetricsEnumValueAccessMethodEnumFunctionAliasCommentPrimitiveTypeTWithInterfacesParametricClassimplicitVariableParametricMethodPropertyVariableStatementFolderScriptEntityInterfacedecorators*decoratedEntity \ No newline at end of file From 15299366dff837e7785b9989d55e06711c810688 Mon Sep 17 00:00:00 2001 From: "Christopher (Cris) Fuhrman" Date: Wed, 12 Jun 2024 09:26:48 -0400 Subject: [PATCH 2/4] Don't update docs on PR --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10ffda7..0dd7468 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,8 @@ jobs: mv *.puml doc-uml - name: Push docs to current branch - if: success() + # do not try if it's a PR, since GitHub Actions checks out the code in a detached state + if: github.event_name == 'push' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | From fdd4055c6f24586e6b2ca5dc910587d5c98d5658 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 12 Jun 2024 13:27:39 +0000 Subject: [PATCH 3/4] Update docs for branch M11-migration --- 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 49db048..88ea133 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 Model <<(C,white)External>> #FFFFCC { Number numberOfLinesOfCode Number numberOfLinesOfCodePerMethod Number numberOfClassesPerPackage Number numberOfLinesOfCodePerClass Number numberOfModelMethods Number numberOfClassesPerPackage Number numberOfModelClasses Number averageCyclomaticComplexity Number numberOfClasses Number numberOfLinesOfCodePerPackage Number numberOfMethods } class TFunction <<(T,white)External>> #FFFFCC { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class Entity <<(C,white)External>> #FFFFCC { Number numberOfTags Boolean isDead Boolean isTagged } class TParameter <<(T,white)External>> #FFFFCC { } class Alias <<(C,white)>> #CCFFFF { } class TEnum <<(T,white)External>> #FFFFCC { } class ParameterType <<(C,white)>> #CCFFFF { } class TWithTypes <<(T,white)External>> #FFFFCC { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isWrite Boolean isReadWriteUnknown Boolean isRead } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class Accessor <<(C,white)>> #CCFFFF { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class TWithMethods <<(T,white)External>> #FFFFCC { Number numberOfAbstractMethods Number weightedMethodCount Number tightClassCohesion Number numberOfMethods } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class Invocation <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class THasKind <<(T,white)External>> #FFFFCC { Boolean isGetter Boolean isConstructor Boolean isConstant Boolean isSetter String kind } class TEnumValue <<(T,white)External>> #FFFFCC { } class TWithComments <<(T,white)External>> #FFFFCC { Number numberOfComments Boolean hasComments } class ContainerEntity <<(C,white)>> #CCFFFF { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfFolders Number totalNumberOfLinesOfText Number numberOfFiles Number numberOfEmptyLinesOfText } class TWithAccesses <<(T,white)External>> #FFFFCC { } class Parameter <<(C,white)>> #CCFFFF { } class TParametricEntity <<(T,white)External>> #FFFFCC { } class TImplementable <<(T,white)External>> #FFFFCC { } class Property <<(C,white)>> #CCFFFF { } class Attribute <<(C,white)>> #CCFFFF { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class Function <<(C,white)>> #CCFFFF { } class Import <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { } class TCanBeFinal <<(T,white)External>> #FFFFCC { Boolean isFinal } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class Decorator <<(C,white)>> #CCFFFF { String expression } class TInheritance <<(T,white)External>> #FFFFCC { } class NamedEntity <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class VariableStatement <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class TImport <<(T,white)External>> #FFFFCC { } class TInvocation <<(T,white)External>> #FFFFCC { } class TWithAnnotationTypes <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsInHierarchy Number numberOfMethodsInherited Number totalNumberOfSubclasses Number numberOfMethodsOverridden Number numberOfLocallyDefinedMethods Number numberOfAttributesInherited } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class TEntityCreator <<(T,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class Reference <<(C,white)>> #CCFFFF { } class THasVisibility <<(T,white)External>> #FFFFCC { String visibility Boolean isPackageVisibility Boolean isPublic Boolean isPrivate Boolean isProtected } class TNamespace <<(T,white)External>> #FFFFCC { } class ParametricFunction <<(C,white)>> #CCFFFF { } class TMethod <<(T,white)External>> #FFFFCC { } class PrimitiveType <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class TConcretization <<(T,white)External>> #FFFFCC { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number numberOfDirectSubclasses Number numberOfSubclasses Number subclassHierarchyDepth Number hierarchyNestingLevel } class ParametricMethod <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TType <<(T,white)External>> #FFFFCC { } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TSourceEntity <<(T,white)External>> #FFFFCC { Number duplicationRate Boolean containsReplicas Boolean isStub Number numberOfLinesOfCodeWithMoreThanOneCharacter Number numberOfLinesOfCode String sourceText } class Implementation <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class TCanImplement <<(T,white)External>> #FFFFCC { } class ParametricInterface <<(C,white)>> #CCFFFF { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TFile <<(T,white)External>> #FFFFCC { Number numberOfBytes Number averageNumberOfCharactersPerLine Number numberOfKiloBytes Number numberOfCharacters Number numberOfEmptyLinesOfText Number totalNumberOfLinesOfText } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class TImplementation <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number numberOfDeadChildren Boolean isDead Number numberOfExternalProviders Number numberOfInternalProviders Number numberOfInternalClients Number numberOfChildren Number fanOut Boolean isRoot Number fanIn Number numberOfExternalClients } class TImportable <<(T,white)External>> #FFFFCC { } class Method <<(C,white)>> #CCFFFF { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TComment <<(T,white)External>> #FFFFCC { String content } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom2 Number lcom3 } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class Namespace <<(C,white)>> #CCFFFF { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class Folder <<(C,white)>> #CCFFFF { } AbstractGroup <|-- Model Entity <|-- SourceLanguage Entity <|-- Access Class <|-- ParametricClass Object <|-- Entity NamedEntity <|-- Alias Type <|-- ParameterType Method <|-- Accessor Entity <|-- Invocation Type <|-- Class NamedEntity <|-- ContainerEntity NamedEntity <|-- Parameter NamedEntity <|-- Property NamedEntity <|-- Attribute ContainerEntity <|-- Function Entity <|-- Import SourcedEntity <|-- Comment NamedEntity <|-- Decorator SourcedEntity <|-- NamedEntity NamedEntity <|-- File ContainerEntity <|-- Type ContainerEntity <|-- ScriptEntity Type <|-- Interface Type <|-- VariableStatement Entity <|-- SourceAnchor NamedEntity <|-- Variable Entity <|-- Reference Function <|-- ParametricFunction Type <|-- PrimitiveType Variable <|-- implicitVariable ScriptEntity <|-- Module SourcedEntity <|-- JSDoc SourceAnchor <|-- SourceTextAnchor Entity <|-- Entity NamedEntity <|-- EnumValue Method <|-- ParametricMethod Type <|-- Enum Entity <|-- Inheritance Model <|-- FamixTypeScriptModel Entity <|-- Implementation SourceAnchor <|-- IndexedFileAnchor Interface <|-- ParametricInterface Entity <|-- Concretization Entity <|-- ParameterConcretization Entity <|-- SourcedEntity ContainerEntity <|-- Method ContainerEntity <|-- Namespace NamedEntity <|-- Folder THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TSourceLanguage <|.. SourceLanguage TAccess <|.. Access TParametricEntity <|.. ParametricClass TStructuralEntity <|.. TParameter TImportable <|.. Alias TGenericParameterType <|.. ParameterType TWithInheritances <|.. ParameterType TType <|.. TEnum TWithEnumValues <|.. TEnum TAssociation <|.. TAccess TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass THasSignature <|.. Invocation TInvocation <|.. Invocation TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TStructuralEntity <|.. TEnumValue TWithAnnotationTypes <|.. ContainerEntity TWithClasses <|.. ContainerEntity TFileSystemEntity <|.. TFolder TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TParameter <|.. Parameter TWithInterfaces <|.. ContainerEntity TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TStructuralEntity <|.. TLocalVariable TSourceAnchor <|.. THasImmediateSource TAttribute <|.. Attribute TCanBeClassSide <|.. Attribute TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TImport <|.. Import TComment <|.. Comment TCanBeFinal <|.. Attribute THasVisibility <|.. Attribute TInvocationsReceiver <|.. Attribute TWithComments <|.. Attribute TSourceEntity <|.. TWithStatements TImportable <|.. Decorator TAssociation <|.. TInheritance TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TFile <|.. File TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TWithStatements <|.. ScriptEntity TWithReferences <|.. TWithStatements TImplementable <|.. Interface TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithComments <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TAssociation <|.. TInvocation THasSignature <|.. TInvocation TSourceAnchor <|.. SourceAnchor TAssociation <|.. TImport TImportable <|.. Variable TLocalVariable <|.. Variable TWithTypes <|.. TWithClasses TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TParametricEntity <|.. ParametricFunction TPrimitiveType <|.. PrimitiveType THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TAssociation <|.. TConcretization THasImmediateSource <|.. SourceTextAnchor TEnumValue <|.. EnumValue TWithComments <|.. EnumValue TParametricEntity <|.. ParametricMethod TEnum <|.. Enum TImportable <|.. Enum TWithComments <|.. Enum TInheritance <|.. Inheritance TType <|.. TPrimitiveType TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TAssociation <|.. TParameterConcretization TEntityCreator <|.. FamixTypeScriptModel TImplementation <|.. Implementation TIndexedFileNavigation <|.. IndexedFileAnchor TType <|.. TGenericParameterType TParametricEntity <|.. ParametricInterface TFileSystemEntity <|.. TFile TWithTypes <|.. TWithInterfaces TConcretization <|.. Concretization TAssociation <|.. TImplementation TParameterConcretization <|.. ParameterConcretization TSourceEntity <|.. SourcedEntity TEntityMetaLevelDependency <|.. TComment TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TMethod <|.. Method TWithComments <|.. Method TStructuralEntity <|.. TAttribute TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TFileAnchor <|.. TIndexedFileNavigation TType <|.. TConcreteParameterType TFolder <|.. Folder TParametricEntity "concreteEntity" -- "genericization" TConcretization TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation TImport "incomingImports*" -- "importedEntity" TImportable TAccess "accesses*" -- "accessor" TWithAccesses TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TWithTypes "typeContainer" o-- "types*" TType TSourceAnchor "sourceAnchor" -- "element" TSourceEntity TWithMethods "parentType" o-- "methods*" TMethod TWithComments "commentedEntity" o-- "comments*" TComment TInvocation "incomingInvocations*" -- "candidates*" TInvocable TInheritance "superInheritances*" -- "subclass" TWithInheritances TInheritance "subInheritances*" -- "superclass" TWithInheritances TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TInvocation "outgoingInvocations*" -- "sender" TWithInvocations Decorator "decorators*" -- "decoratedEntity" NamedEntity TParametricEntity "genericEntity" -- "concretizations*" TConcretization TParametricEntity "genericEntities*" -- "genericParameters*" TGenericParameterType TFunction "functions*" --o "functionOwner" TWithFunctions TImport "outgoingImports*" -- "importingEntity" TWithImports TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType TWithAttributes "parentType" o-- "attributes*" TAttribute Model -- "sourceLanguage" TSourceLanguage TImplementable "interface" -- "implementations*" TImplementation TConcretization "concretizations*" -- "parameterConcretizations*" TParameterConcretization @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 ParameterConcretization <<(C,white)>> #CCFFFF { } class TNamespace <<(T,white)External>> #FFFFCC { } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class Accessor <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class TFunction <<(T,white)External>> #FFFFCC { } class TConcretization <<(T,white)External>> #FFFFCC { } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class SourcedEntity <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class TWithTypes <<(T,white)External>> #FFFFCC { } class Concretization <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class TComment <<(T,white)External>> #FFFFCC { String content } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class TEnum <<(T,white)External>> #FFFFCC { } class Module <<(C,white)>> #CCFFFF { } class TWithComments <<(T,white)External>> #FFFFCC { Boolean hasComments Number numberOfComments } class VariableStatement <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class TType <<(T,white)External>> #FFFFCC { } class TImplementation <<(T,white)External>> #FFFFCC { } class Import <<(C,white)>> #CCFFFF { } class TFile <<(T,white)External>> #FFFFCC { Number averageNumberOfCharactersPerLine Number numberOfEmptyLinesOfText Number totalNumberOfLinesOfText Number numberOfCharacters Number numberOfKiloBytes Number numberOfBytes } class TInheritance <<(T,white)External>> #FFFFCC { } class TSourceEntity <<(T,white)External>> #FFFFCC { String sourceText Number numberOfLinesOfCodeWithMoreThanOneCharacter Number duplicationRate Boolean isStub Number numberOfLinesOfCode Boolean containsReplicas } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number numberOfDirectSubclasses Number subclassHierarchyDepth Number hierarchyNestingLevel Number numberOfSubclasses } class Folder <<(C,white)>> #CCFFFF { } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPublic Boolean isProtected Boolean isPrivate Boolean isPackageVisibility String visibility } class TFolder <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfFiles Number numberOfEmptyLinesOfText Number numberOfFolders } class TInvocable <<(T,white)External>> #FFFFCC { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { } class Attribute <<(C,white)>> #CCFFFF { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class Model <<(C,white)External>> #FFFFCC { Number numberOfLinesOfCodePerMethod Number averageCyclomaticComplexity Number numberOfModelClasses Number numberOfLinesOfCodePerPackage Number numberOfClassesPerPackage Number numberOfClasses Number numberOfMethods Number numberOfClassesPerPackage Number numberOfModelMethods Number numberOfLinesOfCode Number numberOfLinesOfCodePerClass } class Enum <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number numberOfDeadChildren Boolean isRoot Number numberOfChildren Number numberOfInternalClients Number fanOut Number numberOfExternalClients Number numberOfExternalProviders Number numberOfInternalProviders Number fanIn Boolean isDead } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class TEnumValue <<(T,white)External>> #FFFFCC { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class TCanBeFinal <<(T,white)External>> #FFFFCC { Boolean isFinal } class Implementation <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number numberOfAbstractMethods Number numberOfMethods Number weightedMethodCount Number tightClassCohesion } class TClass <<(T,white)External>> #FFFFCC { Boolean isTestCase Number weightOfAClass } class Entity <<(C,white)External>> #FFFFCC { Boolean isDead Number numberOfTags Boolean isTagged } class ParametricFunction <<(C,white)>> #CCFFFF { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class EnumValue <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class TWithAccesses <<(T,white)External>> #FFFFCC { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class TParameter <<(T,white)External>> #FFFFCC { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class TInvocation <<(T,white)External>> #FFFFCC { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class Variable <<(C,white)>> #CCFFFF { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsOverridden Number numberOfAttributesInherited Number totalNumberOfSubclasses Number numberOfMethodsInHierarchy Number numberOfMethodsInherited Number numberOfLocallyDefinedMethods } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class SourceLanguage <<(C,white)>> #CCFFFF { } class TWithImports <<(T,white)External>> #FFFFCC { } class THasKind <<(T,white)External>> #FFFFCC { String kind Boolean isConstructor Boolean isConstant Boolean isGetter Boolean isSetter } class TClassMetrics <<(T,white)>> #CCFFFF { } class TMethod <<(T,white)External>> #FFFFCC { } class NamedEntity <<(C,white)>> #CCFFFF { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TWithAnnotationTypes <<(T,white)External>> #FFFFCC { } class TEntityCreator <<(T,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TImport <<(T,white)External>> #FFFFCC { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isWrite Boolean isReadWriteUnknown Boolean isRead } class implicitVariable <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class TImplementable <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom2 Number lcom3 } class TCanImplement <<(T,white)External>> #FFFFCC { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class JSDoc <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TImportable <<(T,white)External>> #FFFFCC { } class TParametricEntity <<(T,white)External>> #FFFFCC { } class File <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number endPos Number startPos } Type <|-- PrimitiveType Entity <|-- ParameterConcretization Method <|-- Accessor Class <|-- ParametricClass Entity <|-- SourcedEntity ContainerEntity <|-- Method Entity <|-- SourceAnchor Type <|-- ParameterType NamedEntity <|-- Property Entity <|-- Concretization ContainerEntity <|-- Function ScriptEntity <|-- Module Type <|-- VariableStatement NamedEntity <|-- ContainerEntity Entity <|-- Import NamedEntity <|-- Folder Method <|-- ParametricMethod SourcedEntity <|-- Comment AbstractGroup <|-- Model Type <|-- Enum Entity <|-- Invocation Interface <|-- ParametricInterface Entity <|-- Reference NamedEntity <|-- Attribute Type <|-- Interface Entity <|-- Implementation NamedEntity <|-- Alias Object <|-- Entity Function <|-- ParametricFunction NamedEntity <|-- EnumValue SourceAnchor <|-- IndexedFileAnchor NamedEntity <|-- Parameter Model <|-- FamixTypeScriptModel Entity <|-- Inheritance SourceAnchor <|-- SourceTextAnchor NamedEntity <|-- Variable Entity <|-- SourceLanguage SourcedEntity <|-- NamedEntity NamedEntity <|-- Decorator Variable <|-- implicitVariable Type <|-- Class Entity <|-- Access ContainerEntity <|-- Type SourcedEntity <|-- JSDoc ContainerEntity <|-- ScriptEntity NamedEntity <|-- File Entity <|-- Entity ContainerEntity <|-- Namespace TNamespace <|.. Namespace TFileAnchor <|.. TIndexedFileNavigation TParameterConcretization <|.. ParameterConcretization TPrimitiveType <|.. PrimitiveType TStructuralEntity <|.. TAttribute TParametricEntity <|.. ParametricClass TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TSourceEntity <|.. SourcedEntity TAssociation <|.. TConcretization TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TMethod <|.. Method TWithComments <|.. Method TSourceAnchor <|.. SourceAnchor TGenericParameterType <|.. ParameterType TWithInheritances <|.. ParameterType TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TConcretization <|.. Concretization TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TEntityMetaLevelDependency <|.. TComment TAssociation <|.. TParameterConcretization TType <|.. TEnum TWithEnumValues <|.. TEnum TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TWithAnnotationTypes <|.. ContainerEntity TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TImport <|.. Import TWithInterfaces <|.. ContainerEntity TFileSystemEntity <|.. TFile TAssociation <|.. TImplementation TAssociation <|.. TInheritance TFolder <|.. Folder TFileSystemEntity <|.. TFolder TParametricEntity <|.. ParametricMethod TComment <|.. Comment TType <|.. TGenericParameterType TStructuralEntity <|.. TEnumValue TEnum <|.. Enum TImportable <|.. Enum TWithComments <|.. Enum TParametricEntity <|.. ParametricInterface THasSignature <|.. Invocation TInvocation <|.. Invocation TAttribute <|.. Attribute TCanBeClassSide <|.. Attribute TCanBeFinal <|.. Attribute THasVisibility <|.. Attribute TImplementable <|.. Interface TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithComments <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TInvocationsReceiver <|.. Attribute TImplementation <|.. Implementation TWithComments <|.. Attribute TImportable <|.. Alias TType <|.. TConcreteParameterType TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TParametricEntity <|.. ParametricFunction TType <|.. TPrimitiveType TEnumValue <|.. EnumValue TWithComments <|.. EnumValue TIndexedFileNavigation <|.. IndexedFileAnchor TParameter <|.. Parameter TEntityCreator <|.. FamixTypeScriptModel TStructuralEntity <|.. TParameter TInheritance <|.. Inheritance TStructuralEntity <|.. TLocalVariable TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TAssociation <|.. TInvocation THasSignature <|.. TInvocation THasImmediateSource <|.. SourceTextAnchor TImportable <|.. Variable TLocalVariable <|.. Variable TSourceLanguage <|.. SourceLanguage THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TWithTypes <|.. TWithClasses TImportable <|.. Decorator TSourceAnchor <|.. THasImmediateSource TAssociation <|.. TImport TAssociation <|.. TAccess TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TWithTypes <|.. TWithInterfaces TAccess <|.. Access TWithStatements <|.. ScriptEntity TFile <|.. File TDefinedInModule <|.. Namespace TImportable <|.. Namespace TAttribute "attributes*" --o "parentType" TWithAttributes TImplementation "implementations*" -- "interface" TImplementable TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TInvocable "candidates*" -- "incomingInvocations*" TInvocation TConcreteParameterType "concreteParameters*" -- "concreteEntities*" TParametricEntity NamedEntity "decoratedEntity" -- "decorators*" Decorator TFunction "functions*" --o "functionOwner" TWithFunctions TConcretization "genericization" -- "concreteEntity" TParametricEntity TWithLocalVariables "parentBehaviouralEntity" o-- "localVariables*" TLocalVariable TGenericParameterType "genericParameters*" -- "genericEntities*" TParametricEntity TConcretization "concretizations*" -- "parameterConcretizations*" TParameterConcretization TInheritance "subInheritances*" -- "superclass" TWithInheritances TConcretization "concretizations*" -- "genericEntity" TParametricEntity TInheritance "superInheritances*" -- "subclass" TWithInheritances TImport "incomingImports*" -- "importedEntity" TImportable TWithAccesses "accessor" -- "accesses*" TAccess Model -- "sourceLanguage" TSourceLanguage TWithInvocations "sender" -- "outgoingInvocations*" TInvocation TImplementation "interfaceImplementations*" -- "implementingClass" TCanImplement TInvocation "receivingInvocations*" -- "receiver" TInvocationsReceiver TWithTypes "typeContainer" o-- "types*" TType TComment "comments*" --o "commentedEntity" TWithComments TSourceAnchor "sourceAnchor" -- "element" TSourceEntity TWithMethods "parentType" o-- "methods*" TMethod TWithImports "importingEntity" -- "outgoingImports*" TImport @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript-traits.svg b/doc-uml/FamixTypeScript-traits.svg index 6b2eb98..c8511ce 100644 --- a/doc-uml/FamixTypeScript-traits.svg +++ b/doc-uml/FamixTypeScript-traits.svg @@ -1 +1 @@ -«External»ModelNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerMethodNumber numberOfClassesPerPackageNumber numberOfLinesOfCodePerClassNumber numberOfModelMethodsNumber numberOfClassesPerPackageNumber numberOfModelClassesNumber averageCyclomaticComplexityNumber numberOfClassesNumber numberOfLinesOfCodePerPackageNumber numberOfMethods«External»TFunctionSourceLanguageAccessParametricClassEntityNumber numberOfTagsBoolean isDeadBoolean isTagged«External»TParameterAlias«External»TEnumParameterType«External»TWithTypes«External»TCanBeClassSideBoolean isClassSide«External»TDefinedInModule«External»TAccessBoolean isWriteBoolean isReadWriteUnknownBoolean isRead«External»TSourceAnchorNumber lineCountAccessor«External»TWithAttributesNumber numberOfAttributes«External»TWithMethodsNumber numberOfAbstractMethodsNumber weightedMethodCountNumber tightClassCohesionNumber numberOfMethods«External»TClassNumber weightOfAClassBoolean isTestCaseInvocationClass«External»THasKindBoolean isGetterBoolean isConstructorBoolean isConstantBoolean isSetterString kind«External»TEnumValue«External»TWithCommentsNumber numberOfCommentsBoolean hasCommentsContainerEntity«External»THasSignatureString signature«External»TFolderNumber numberOfFoldersNumber totalNumberOfLinesOfTextNumber numberOfFilesNumber numberOfEmptyLinesOfText«External»TWithAccessesParameter«External»TParametricEntity«External»TImplementablePropertyAttribute«External»TLocalVariable«External»THasImmediateSourceString sourceFunctionImportComment«External»TCanBeFinalBoolean isFinal«External»TWithStatementsNumber numberOfStatementsDecoratorString expression«External»TInheritanceNamedEntity«External»TWithFunctionsTypeFileScriptEntity«External»TSourceLanguageInterfaceSourceAnchor«External»TInvocationsReceiverVariableStatementVariable«External»TImport«External»TInvocation«External»TWithAnnotationTypesTClassMetricsNumber numberOfMethodsInHierarchyNumber numberOfMethodsInheritedNumber totalNumberOfSubclassesNumber numberOfMethodsOverriddenNumber numberOfLocallyDefinedMethodsNumber numberOfAttributesInherited«External»TWithClassesNumber numberOfClassesTEntityCreator«External»TWithInvocationsNumber numberOfOutgoingInvocationsReference«External»THasVisibilityString visibilityBoolean isPackageVisibilityBoolean isPublicBoolean isPrivateBoolean isProtected«External»TNamespaceParametricFunction«External»TMethodPrimitiveTypeimplicitVariableModuleEnumValueJSDoc«External»TConcretizationSourceTextAnchor«External»TWithInheritancesNumber numberOfDirectSubclassesNumber numberOfSubclassesNumber subclassHierarchyDepthNumber hierarchyNestingLevelParametricMethodEnumInheritance«External»TInvocable«External»TPrimitiveType«External»TType«External»TParameterConcretizationFamixTypeScriptModel«External»TSourceEntityNumber duplicationRateBoolean containsReplicasBoolean isStubNumber numberOfLinesOfCodeWithMoreThanOneCharacterNumber numberOfLinesOfCodeString sourceTextImplementationIndexedFileAnchor«External»TWithLocalVariables«External»TNamedEntityString name«External»TCanImplementParametricInterface«External»TGenericParameterType«External»TFileNumber numberOfBytesNumber averageNumberOfCharactersPerLineNumber numberOfKiloBytesNumber numberOfCharactersNumber numberOfEmptyLinesOfTextNumber totalNumberOfLinesOfTextTWithInterfacesConcretization«External»TImplementation«External»TWithImportsParameterConcretizationSourcedEntity«External»TEntityMetaLevelDependencyNumber numberOfDeadChildrenBoolean isDeadNumber numberOfExternalProvidersNumber numberOfInternalProvidersNumber numberOfInternalClientsNumber numberOfChildrenNumber fanOutBoolean isRootNumber fanInNumber numberOfExternalClients«External»TImportableMethod«External»TCanBeAbstractBoolean isAbstract«External»TCommentString content«External»TAttributeNumber hierarchyNestingLevel«External»TLCOMMetricsNumber lcom2Number lcom3«External»TIndexedFileNavigationNumber startPosNumber endPosNamespace«External»TConcreteParameterTypeFolderAbstractGroupObjectTTypedEntityTWithParametersTStructuralEntityTWithEnumValuesTAssociationTFileSystemEntityTWithReferencesTMethodMetricsTWithImplicitVariablesTReferenceableTFileAnchordecorators*decoratedEntityconcreteEntitygenericizationgenericEntityconcretizations*generics*concreteParameterconcreteEntities*concreteParameters*receiverreceivingInvocations*incomingImports*importedEntityaccesses*accessorimplementingClassinterfaceImplementations*typeContainertypes*sourceAnchorelementparentTypemethods*commentedEntitycomments*incomingInvocations*candidates*superInheritances*subclasssubInheritances*superclasslocalVariables*parentBehaviouralEntityoutgoingInvocations*sendergenericEntities*genericParameters*functions*functionOwneroutgoingImports*importingEntityconcretizations*genericParameterparentTypeattributes*sourceLanguageinterfaceimplementations*concretizations*parameterConcretizations* \ No newline at end of file +PrimitiveTypeParameterConcretization«External»TNamespace«External»TAttributeNumber hierarchyNestingLevelAccessorParametricClass«External»TFunction«External»TConcretization«External»TSourceAnchorNumber lineCountSourcedEntityMethodSourceAnchor«External»TWithTypesConcretizationParameterTypePropertyFunction«External»TCommentString content«External»TParameterConcretization«External»TEnumModule«External»TWithCommentsBoolean hasCommentsNumber numberOfCommentsVariableStatementContainerEntity«External»TType«External»TImplementationImport«External»TFileNumber averageNumberOfCharactersPerLineNumber numberOfEmptyLinesOfTextNumber totalNumberOfLinesOfTextNumber numberOfCharactersNumber numberOfKiloBytesNumber numberOfBytes«External»TInheritance«External»TSourceEntityString sourceTextNumber numberOfLinesOfCodeWithMoreThanOneCharacterNumber duplicationRateBoolean isStubNumber numberOfLinesOfCodeBoolean containsReplicas«External»TWithLocalVariables«External»TWithInheritancesNumber numberOfDirectSubclassesNumber subclassHierarchyDepthNumber hierarchyNestingLevelNumber numberOfSubclassesFolder«External»THasVisibilityBoolean isPublicBoolean isProtectedBoolean isPrivateBoolean isPackageVisibilityString visibility«External»TFolderNumber totalNumberOfLinesOfTextNumber numberOfFilesNumber numberOfEmptyLinesOfTextNumber numberOfFolders«External»TInvocable«External»TWithFunctionsParametricMethodInvocationCommentAttribute«External»TGenericParameterType«External»ModelNumber numberOfLinesOfCodePerMethodNumber averageCyclomaticComplexityNumber numberOfModelClassesNumber numberOfLinesOfCodePerPackageNumber numberOfClassesPerPackageNumber numberOfClassesNumber numberOfMethodsNumber numberOfClassesPerPackageNumber numberOfModelMethodsNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerClassEnum«External»TEntityMetaLevelDependencyNumber numberOfDeadChildrenBoolean isRootNumber numberOfChildrenNumber numberOfInternalClientsNumber fanOutNumber numberOfExternalClientsNumber numberOfExternalProvidersNumber numberOfInternalProvidersNumber fanInBoolean isDead«External»TWithInvocationsNumber numberOfOutgoingInvocations«External»TEnumValueParametricInterfaceReferenceInterface«External»TCanBeFinalBoolean isFinalImplementationAlias«External»TConcreteParameterType«External»TWithMethodsNumber numberOfAbstractMethodsNumber numberOfMethodsNumber weightedMethodCountNumber tightClassCohesion«External»TClassBoolean isTestCaseNumber weightOfAClassEntityBoolean isDeadNumber numberOfTagsBoolean isTaggedParametricFunction«External»TPrimitiveTypeEnumValueIndexedFileAnchorParameter«External»TWithAccessesFamixTypeScriptModelInheritance«External»TParameter«External»TLocalVariable«External»TWithStatementsNumber numberOfStatements«External»TInvocationSourceTextAnchor«External»THasSignatureString signatureVariable«External»TInvocationsReceiver«External»TWithAttributesNumber numberOfAttributesTClassMetricsNumber numberOfMethodsOverriddenNumber numberOfAttributesInheritedNumber totalNumberOfSubclassesNumber numberOfMethodsInHierarchyNumber numberOfMethodsInheritedNumber numberOfLocallyDefinedMethods«External»TDefinedInModuleSourceLanguage«External»TWithImports«External»THasKindString kindBoolean isConstructorBoolean isConstantBoolean isGetterBoolean isSetter«External»TMethodNamedEntity«External»TWithClassesNumber numberOfClasses«External»TCanBeClassSideBoolean isClassSide«External»TWithAnnotationTypesTEntityCreatorDecoratorString expression«External»THasImmediateSourceString source«External»TImport«External»TAccessBoolean isWriteBoolean isReadWriteUnknownBoolean isReadimplicitVariableClassAccessScriptEntity«External»TImplementableType«External»TLCOMMetricsNumber lcom2Number lcom3«External»TCanImplementTWithInterfaces«External»TNamedEntityString nameJSDoc«External»TSourceLanguage«External»TCanBeAbstractBoolean isAbstract«External»TImportable«External»TParametricEntityFileNamespace«External»TIndexedFileNavigationNumber endPosNumber startPosAbstractGroupObjectTFileAnchorTStructuralEntityTTypedEntityTWithParametersTAssociationTWithEnumValuesTReferenceableTFileSystemEntityTWithReferencesTMethodMetricsTWithImplicitVariablesdecoratedEntitydecorators*attributes*parentTypeimplementations*interfaceconcretizations*genericParametergenerics*concreteParametercandidates*incomingInvocations*concreteParameters*concreteEntities*functions*functionOwnergenericizationconcreteEntityconcretizations*genericEntityparentBehaviouralEntitylocalVariables*genericParameters*genericEntities*concretizations*parameterConcretizations*subInheritances*superclasssuperInheritances*subclassincomingImports*importedEntityaccessoraccesses*sourceLanguagesenderoutgoingInvocations*interfaceImplementations*implementingClassreceivingInvocations*receivertypeContainertypes*comments*commentedEntitysourceAnchorelementparentTypemethods*importingEntityoutgoingImports* \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.puml b/doc-uml/FamixTypeScript.puml index a71e788..1133401 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 Namespace <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class ParameterType <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Attribute <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Import <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { } class VariableStatement <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } SourceAnchor <|-- SourceTextAnchor ContainerEntity <|-- Namespace NamedEntity <|-- Decorator NamedEntity <|-- Variable Type <|-- ParameterType Type <|-- Class NamedEntity <|-- File Interface <|-- ParametricInterface SourcedEntity <|-- JSDoc Function <|-- ParametricFunction Entity <|-- SourceLanguage NamedEntity <|-- Attribute ContainerEntity <|-- Type Entity <|-- SourceAnchor Entity <|-- Inheritance SourceAnchor <|-- IndexedFileAnchor Entity <|-- Concretization ScriptEntity <|-- Module SourcedEntity <|-- NamedEntity NamedEntity <|-- ContainerEntity Method <|-- Accessor Entity <|-- Invocation Entity <|-- Reference NamedEntity <|-- Parameter Entity <|-- SourcedEntity Entity <|-- ParameterConcretization Entity <|-- Implementation Entity <|-- Import NamedEntity <|-- EnumValue Entity <|-- Access ContainerEntity <|-- Method Type <|-- Enum ContainerEntity <|-- Function NamedEntity <|-- Alias SourcedEntity <|-- Comment Type <|-- PrimitiveType Class <|-- ParametricClass Variable <|-- implicitVariable Method <|-- ParametricMethod NamedEntity <|-- Property Type <|-- VariableStatement NamedEntity <|-- Folder ContainerEntity <|-- ScriptEntity Type <|-- Interface 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 Concretization <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class NamedEntity <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Attribute <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Import <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class VariableStatement <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } Entity <|-- Concretization Entity <|-- Reference ContainerEntity <|-- Method Entity <|-- Access SourceAnchor <|-- IndexedFileAnchor ScriptEntity <|-- Module Type <|-- Enum Type <|-- Interface NamedEntity <|-- Decorator SourcedEntity <|-- NamedEntity Variable <|-- implicitVariable ContainerEntity <|-- ScriptEntity Class <|-- ParametricClass ContainerEntity <|-- Function NamedEntity <|-- Parameter SourcedEntity <|-- JSDoc NamedEntity <|-- Alias Entity <|-- SourceAnchor NamedEntity <|-- Attribute Interface <|-- ParametricInterface NamedEntity <|-- Folder NamedEntity <|-- ContainerEntity NamedEntity <|-- File Type <|-- Class ContainerEntity <|-- Type Method <|-- ParametricMethod Entity <|-- Import Function <|-- ParametricFunction NamedEntity <|-- Property Entity <|-- Invocation Type <|-- VariableStatement Method <|-- Accessor Type <|-- PrimitiveType SourcedEntity <|-- Comment Entity <|-- SourceLanguage NamedEntity <|-- EnumValue Entity <|-- ParameterConcretization Entity <|-- SourcedEntity Entity <|-- Implementation SourceAnchor <|-- SourceTextAnchor Entity <|-- Inheritance NamedEntity <|-- Variable Type <|-- ParameterType ContainerEntity <|-- Namespace 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 228e30d..ef02ecb 100644 --- a/doc-uml/FamixTypeScript.svg +++ b/doc-uml/FamixTypeScript.svg @@ -1 +1 @@ -NamespaceSourceTextAnchorClassDecoratorString expressionParameterTypeVariableFileJSDocParametricInterfaceParametricFunctionSourceLanguageAttributeTypeSourceAnchorInheritanceEntityIndexedFileAnchorConcretizationModuleNamedEntityContainerEntityAccessorInvocationReferenceParameterSourcedEntityParameterConcretizationImplementationTEntityCreatorFamixTypeScriptModelImportTClassMetricsEnumValueAccessMethodEnumFunctionAliasCommentPrimitiveTypeTWithInterfacesParametricClassimplicitVariableParametricMethodPropertyVariableStatementFolderScriptEntityInterfacedecorators*decoratedEntity \ No newline at end of file +ConcretizationTWithInterfacesAccessReferenceMethodIndexedFileAnchorModuleEnumInterfaceFamixTypeScriptModelDecoratorString expressionNamedEntityimplicitVariableScriptEntityParametricClassFunctionTClassMetricsParameterJSDocAliasSourceAnchorAttributeParametricInterfaceFolderContainerEntityFileClassTypeParametricMethodImportParametricFunctionPropertyInvocationEntityAccessorVariableStatementPrimitiveTypeCommentSourceLanguageEnumValueSourcedEntityParameterConcretizationInheritanceTEntityCreatorImplementationSourceTextAnchorVariableParameterTypeNamespacedecorators*decoratedEntity \ No newline at end of file From b315bb648ca167fe4d748d7551c6fa47c5e5bebe Mon Sep 17 00:00:00 2001 From: "C. Fuhrman" Date: Wed, 12 Jun 2024 09:55:08 -0400 Subject: [PATCH 4/4] ChatGPT-inspired dual workflow that should not run twice in PR context --- .github/workflows/{ci.yml => ci.yml-nope} | 0 .github/workflows/common.yml | 62 +++++++++++++++++++++++ .github/workflows/pr_ci.yml | 13 +++++ .github/workflows/push_ci.yml | 14 +++++ 4 files changed, 89 insertions(+) rename .github/workflows/{ci.yml => ci.yml-nope} (100%) create mode 100644 .github/workflows/common.yml create mode 100644 .github/workflows/pr_ci.yml create mode 100644 .github/workflows/push_ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml-nope similarity index 100% rename from .github/workflows/ci.yml rename to .github/workflows/ci.yml-nope diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml new file mode 100644 index 0000000..c51ea06 --- /dev/null +++ b/.github/workflows/common.yml @@ -0,0 +1,62 @@ +# .github/workflows/common.yml +name: Common Workflow + +on: + workflow_call: + inputs: + run_docs: + description: 'Whether to run documentation steps' + required: true + type: boolean + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + # List of images at https://github.com/hpi-swa/smalltalkCI#images + # Use Moose64-11 that includes our visualization tool + smalltalk: [Moose64-11] + name: ${{ matrix.smalltalk }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} # Checkout the branch that triggered the workflow + + # Prepare the CI - download the correct VM + - uses: hpi-swa/setup-smalltalkCI@v1 + with: + smalltalk-image: ${{ matrix.smalltalk }} + + # Run the tests + - run: smalltalkci -s ${{ matrix.smalltalk }} + shell: bash + timeout-minutes: 15 + + - name: Generate plantuml representation of meta-model + run: | + $SMALLTALK_CI_VM $SMALLTALK_CI_IMAGE eval "'FamixTypeScript-traits.puml' asFileReference writeStreamDo: [ :stream | stream nextPutAll: (FamixUMLDocumentor new model: FamixTypeScriptModel color: Color lightBlue ; beWithStubs ; generate; exportWith: (FamixUMLPlantUMLBackend new))]" + $SMALLTALK_CI_VM $SMALLTALK_CI_IMAGE eval "'FamixTypeScript.puml' asFileReference writeStreamDo: [ :stream | stream nextPutAll: (FamixUMLDocumentor new model: FamixTypeScriptModel color: Color lightBlue ; generate; exportWith: (FamixUMLPlantUMLBackend new))]" + - name: Generate SVG Diagram from PlantUML + uses: Timmy/plantuml-action@v1 + with: + args: -v -tsvg FamixTypeScript-traits.puml FamixTypeScript.puml + + - name: Move diagram to doc space + if: inputs.run_docs == 'true' + run: | + mkdir -p doc-uml + mv *.svg doc-uml + mv *.puml doc-uml + + - name: Push docs to current branch + if: inputs.run_docs == 'true' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git config --global user.name 'github-actions[bot]' + git config --global user.email 'github-actions[bot]@users.noreply.github.com' + git add doc-uml + git commit -m "Update docs for branch ${{ github.ref_name }}" + git push origin HEAD:refs/heads/${{ github.ref_name }} # Push to the branch that triggered the workflow diff --git a/.github/workflows/pr_ci.yml b/.github/workflows/pr_ci.yml new file mode 100644 index 0000000..8fab7a8 --- /dev/null +++ b/.github/workflows/pr_ci.yml @@ -0,0 +1,13 @@ +# .github/workflows/pr.yml +name: PR CI + +on: + pull_request: + branches: + - '*' # Trigger on any branch pull request + +jobs: + build: + uses: ./.github/workflows/common.yml + with: + run_docs: false diff --git a/.github/workflows/push_ci.yml b/.github/workflows/push_ci.yml new file mode 100644 index 0000000..a5f772e --- /dev/null +++ b/.github/workflows/push_ci.yml @@ -0,0 +1,14 @@ +# .github/workflows/ci.yml +name: CI for push on branch + +on: + push: + branches: + - '*' # Trigger on any branch push + workflow_dispatch: + +jobs: + build: + uses: ./.github/workflows/common.yml + with: + run_docs: true