diff --git a/doc-uml/FamixTypeScript-traits.puml b/doc-uml/FamixTypeScript-traits.puml
index 5a5c54c..e292706 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 TConcretization <<(T,white)External>> #FFFFCC {
}
class TImplementable <<(T,white)External>> #FFFFCC {
}
class FamixTypeScriptModel <<(C,white)>> #CCFFFF {
}
class TInvocationsReceiver <<(T,white)External>> #FFFFCC {
}
class TCanBeAbstract <<(T,white)External>> #FFFFCC {
Boolean isAbstract
}
class TFolder <<(T,white)External>> #FFFFCC {
Number totalNumberOfLinesOfText
Number numberOfFolders
Number numberOfFiles
Number numberOfEmptyLinesOfText
}
class TNamespace <<(T,white)External>> #FFFFCC {
}
class Inheritance <<(C,white)>> #CCFFFF {
}
class IndexedFileAnchor <<(C,white)>> #CCFFFF {
}
class TInvocable <<(T,white)External>> #FFFFCC {
}
class TWithMethods <<(T,white)External>> #FFFFCC {
Number numberOfMethods
Number weightedMethodCount
Number tightClassCohesion
Number numberOfAbstractMethods
}
class Access <<(C,white)>> #CCFFFF {
}
class THasSignature <<(T,white)External>> #FFFFCC {
String signature
}
class TInvocation <<(T,white)External>> #FFFFCC {
}
class File <<(C,white)>> #CCFFFF {
}
class Class <<(C,white)>> #CCFFFF {
}
class Implementation <<(C,white)>> #CCFFFF {
}
class Decorator <<(C,white)>> #CCFFFF {
String expression
}
class ParametricInterface <<(C,white)>> #CCFFFF {
}
class TImport <<(T,white)External>> #FFFFCC {
}
class Enum <<(C,white)>> #CCFFFF {
}
class ParametricClass <<(C,white)>> #CCFFFF {
}
class ParametricArrowFunction <<(C,white)>> #CCFFFF {
}
class TConcreteParameterType <<(T,white)External>> #FFFFCC {
}
class TWithClasses <<(T,white)External>> #FFFFCC {
Number numberOfClasses
}
class TEntityCreator <<(T,white)>> #CCFFFF {
}
class THasImmediateSource <<(T,white)External>> #FFFFCC {
String source
}
class THasVisibility <<(T,white)External>> #FFFFCC {
Boolean isProtected
Boolean isPublic
Boolean isPrivate
String visibility
Boolean isPackageVisibility
}
class ImportClause <<(C,white)>> #CCFFFF {
}
class TLocalVariable <<(T,white)External>> #FFFFCC {
}
class TPrimitiveType <<(T,white)External>> #FFFFCC {
}
class Concretization <<(C,white)>> #CCFFFF {
}
class Property <<(C,white)>> #CCFFFF {
Boolean isOptional
Boolean isDefinitelyAssigned
Boolean isJavaScriptPrivate
Boolean readOnly
}
class TCanBeClassSide <<(T,white)External>> #FFFFCC {
Boolean isClassSide
}
class THasKind <<(T,white)External>> #FFFFCC {
Boolean isGetter
String kind
Boolean isSetter
Boolean isConstructor
Boolean isConstant
}
class TWithInheritances <<(T,white)External>> #FFFFCC {
Number numberOfSubclasses
Number hierarchyNestingLevel
Number numberOfDirectSubclasses
Number subclassHierarchyDepth
}
class TSourceLanguage <<(T,white)External>> #FFFFCC {
}
class ScopingEntity <<(C,white)>> #CCFFFF {
}
class Type <<(C,white)>> #CCFFFF {
}
class ParametricFunction <<(C,white)>> #CCFFFF {
}
class TTypedEntity <<(T,white)External>> #FFFFCC {
}
class SourceTextAnchor <<(C,white)>> #CCFFFF {
}
class Comment <<(C,white)>> #CCFFFF {
Boolean isJSDoc
}
class ParametricMethod <<(C,white)>> #CCFFFF {
}
class TFunction <<(T,white)External>> #FFFFCC {
}
class ContainerEntity <<(C,white)>> #CCFFFF {
}
class Entity <<(C,white)External>> #FFFFCC {
Boolean isDead
Boolean isTagged
Number numberOfTags
}
class Reference <<(C,white)>> #CCFFFF {
}
class TWithTypes <<(T,white)External>> #FFFFCC {
}
class TFile <<(T,white)External>> #FFFFCC {
Number numberOfBytes
Number numberOfCharacters
Number totalNumberOfLinesOfText
Number numberOfEmptyLinesOfText
Number numberOfKiloBytes
Number averageNumberOfCharactersPerLine
}
class TWithInvocations <<(T,white)External>> #FFFFCC {
Number numberOfOutgoingInvocations
}
class TInheritance <<(T,white)External>> #FFFFCC {
}
class TComment <<(T,white)External>> #FFFFCC {
String content
}
class ParameterConcretization <<(C,white)>> #CCFFFF {
}
class TWithImports <<(T,white)External>> #FFFFCC {
}
class ScriptEntity <<(C,white)>> #CCFFFF {
}
class SourceAnchor <<(C,white)>> #CCFFFF {
}
class TParametricEntity <<(T,white)External>> #FFFFCC {
}
class TWithInterfaces <<(T,white)>> #CCFFFF {
}
class TEnum <<(T,white)External>> #FFFFCC {
}
class NamedEntity <<(C,white)>> #CCFFFF {
}
class TWithAttributes <<(T,white)External>> #FFFFCC {
Number numberOfAttributes
}
class TWithLocalVariables <<(T,white)External>> #FFFFCC {
}
class ParameterType <<(C,white)>> #CCFFFF {
}
class TWithComments <<(T,white)External>> #FFFFCC {
Number numberOfComments
Boolean hasComments
}
class TNamedEntity <<(T,white)External>> #FFFFCC {
String name
}
class TWithFunctions <<(T,white)External>> #FFFFCC {
}
class SourcedEntity <<(C,white)>> #CCFFFF {
}
class TParameterConcretization <<(T,white)External>> #FFFFCC {
}
class TSourceEntity <<(T,white)External>> #FFFFCC {
Boolean isStub
Number numberOfLinesOfCode
Number duplicationRate
String sourceText
Boolean containsReplicas
Number numberOfLinesOfCodeWithMoreThanOneCharacter
}
class Variable <<(C,white)>> #CCFFFF {
}
class TIndexedFileNavigation <<(T,white)External>> #FFFFCC {
Number endPos
Number startPos
}
class Accessor <<(C,white)>> #CCFFFF {
}
class ArrowFunction <<(C,white)>> #CCFFFF {
}
class TParameter <<(T,white)External>> #FFFFCC {
}
class TStructuralEntity <<(T,white)External>> #FFFFCC {
}
class TWithAccesses <<(T,white)External>> #FFFFCC {
}
class TEnumValue <<(T,white)External>> #FFFFCC {
}
class TAccess <<(T,white)External>> #FFFFCC {
Boolean isRead
Boolean isReadWriteUnknown
Boolean isWrite
}
class EnumValue <<(C,white)>> #CCFFFF {
}
class TSourceAnchor <<(T,white)External>> #FFFFCC {
Number lineCount
}
class Function <<(C,white)>> #CCFFFF {
}
class Alias <<(C,white)>> #CCFFFF {
}
class BehaviouralEntity <<(C,white)>> #CCFFFF {
}
class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC {
Boolean isDead
Boolean isRoot
Number numberOfChildren
Number fanIn
Number numberOfInternalProviders
Number numberOfDeadChildren
Number numberOfExternalProviders
Number numberOfExternalClients
Number numberOfInternalClients
Number fanOut
}
class Module <<(C,white)>> #CCFFFF {
}
class JSDoc <<(C,white)>> #CCFFFF {
}
class Namespace <<(C,white)>> #CCFFFF {
}
class implicitVariable <<(C,white)>> #CCFFFF {
}
class Model <<(C,white)External>> #FFFFCC {
Number numberOfClassesPerPackage
Number numberOfModelClasses
Number numberOfModelMethods
Number numberOfLinesOfCodePerClass
Number numberOfMethods
Number numberOfClassesPerPackage
Number numberOfClasses
Number numberOfLinesOfCodePerMethod
Number averageCyclomaticComplexity
Number numberOfLinesOfCodePerPackage
Number numberOfLinesOfCode
}
class TType <<(T,white)External>> #FFFFCC {
}
class TImportable <<(T,white)External>> #FFFFCC {
}
class PrimitiveType <<(C,white)>> #CCFFFF {
}
class TAttribute <<(T,white)External>> #FFFFCC {
Number hierarchyNestingLevel
}
class TClass <<(T,white)External>> #FFFFCC {
Boolean isTestCase
Number weightOfAClass
}
class Parameter <<(C,white)>> #CCFFFF {
}
class TWithStatements <<(T,white)External>> #FFFFCC {
Number numberOfStatements
}
class TDefinedInModule <<(T,white)External>> #FFFFCC {
}
class Folder <<(C,white)>> #CCFFFF {
}
class SourceLanguage <<(C,white)>> #CCFFFF {
}
class Entity <<(C,white)>> #CCFFFF {
}
class Invocation <<(C,white)>> #CCFFFF {
}
class TCanImplement <<(T,white)External>> #FFFFCC {
}
class Method <<(C,white)>> #CCFFFF {
}
class TImplementation <<(T,white)External>> #FFFFCC {
}
class TClassMetrics <<(T,white)External>> #FFFFCC {
Number totalNumberOfSubclasses
Number numberOfLocallyDefinedMethods
Number numberOfMethodsInherited
Number numberOfAttributesInherited
Number numberOfMethodsOverridden
Number numberOfMethodsInHierarchy
}
class TGenericParameterType <<(T,white)External>> #FFFFCC {
}
class TMethod <<(T,white)External>> #FFFFCC {
}
class StructuralEntity <<(C,white)>> #CCFFFF {
}
class TLCOMMetrics <<(T,white)External>> #FFFFCC {
Number lcom3
Number lcom2
}
class Interface <<(C,white)>> #CCFFFF {
}
class TClassMetrics <<(T,white)>> #CCFFFF {
}
Model <|-- FamixTypeScriptModel
Entity <|-- Inheritance
SourceAnchor <|-- IndexedFileAnchor
Type <|-- Interface
Entity <|-- Access
Type <|-- Class
Entity <|-- Implementation
ArrowFunction <|-- ParametricArrowFunction
Interface <|-- ParametricInterface
NamedEntity <|-- Decorator
Type <|-- Enum
Class <|-- ParametricClass
NamedEntity <|-- File
Entity <|-- ImportClause
StructuralEntity <|-- Property
Entity <|-- Concretization
ContainerEntity <|-- ScopingEntity
ContainerEntity <|-- Type
Function <|-- ParametricFunction
SourceAnchor <|-- SourceTextAnchor
SourcedEntity <|-- Comment
Method <|-- ParametricMethod
Object <|-- Entity
Entity <|-- Reference
NamedEntity <|-- ContainerEntity
Entity <|-- ParameterConcretization
ScopingEntity <|-- ScriptEntity
Entity <|-- SourceAnchor
SourcedEntity <|-- NamedEntity
Type <|-- ParameterType
Entity <|-- SourcedEntity
StructuralEntity <|-- Variable
BehaviouralEntity <|-- ArrowFunction
Method <|-- Accessor
StructuralEntity <|-- EnumValue
BehaviouralEntity <|-- Function
NamedEntity <|-- Alias
ContainerEntity <|-- BehaviouralEntity
ScriptEntity <|-- Module
SourcedEntity <|-- JSDoc
ScopingEntity <|-- Namespace
Variable <|-- implicitVariable
AbstractGroup <|-- Model
Type <|-- PrimitiveType
StructuralEntity <|-- Parameter
NamedEntity <|-- Folder
Entity <|-- Entity
Entity <|-- SourceLanguage
Entity <|-- Invocation
BehaviouralEntity <|-- Method
NamedEntity <|-- StructuralEntity
TStructuralEntity <|.. StructuralEntity
TInvocable <|.. TMethod
TMethodMetrics <|.. TMethod
TNamedEntity <|.. TMethod
TEntityCreator <|.. FamixTypeScriptModel
TTypedEntity <|.. TMethod
TWithImplicitVariables <|.. TMethod
TWithLocalVariables <|.. TMethod
TFileSystemEntity <|.. TFolder
TNamedEntity <|.. TNamespace
TSourceEntity <|.. TNamespace
TEntityMetaLevelDependency <|.. TNamespace
TInheritance <|.. Inheritance
TWithParameters <|.. TMethod
TWithStatements <|.. TMethod
TIndexedFileNavigation <|.. IndexedFileAnchor
TEntityMetaLevelDependency <|.. TMethod
TImplementable <|.. Interface
TInvocationsReceiver <|.. Interface
TWithAttributes <|.. Interface
TWithInheritances <|.. Interface
TWithMethods <|.. Interface
TAssociation <|.. TConcretization
TAccess <|.. Access
TAssociation <|.. TInvocation
THasSignature <|.. TInvocation
TCanBeAbstract <|.. Class
TCanImplement <|.. Class
TClass <|.. Class
TClassMetrics <|.. Class
TImportable <|.. Class
TLCOMMetrics <|.. Class
TWithAccesses <|.. Class
TWithInvocations <|.. Class
TClassMetrics <|.. Class
TImplementation <|.. Implementation
TParametricEntity <|.. ParametricArrowFunction
TParametricEntity <|.. ParametricInterface
TImportable <|.. Decorator
TAssociation <|.. TImport
TEnum <|.. Enum
TImportable <|.. Enum
TStructuralEntity <|.. TLocalVariable
TParametricEntity <|.. ParametricClass
TType <|.. TPrimitiveType
TFile <|.. File
TAttribute <|.. Property
TCanBeClassSide <|.. Property
THasVisibility <|.. Property
TImport <|.. ImportClause
TSourceAnchor <|.. THasImmediateSource
TType <|.. TConcreteParameterType
TConcretization <|.. Concretization
TWithTypes <|.. TWithClasses
TWithAccesses <|.. ScopingEntity
TWithInvocations <|.. ScopingEntity
TConcreteParameterType <|.. Type
TImportable <|.. Type
TType <|.. Type
TWithMethods <|.. Type
TParametricEntity <|.. ParametricFunction
THasImmediateSource <|.. SourceTextAnchor
TComment <|.. Comment
TParametricEntity <|.. ParametricMethod
THasSignature <|.. TFunction
TInvocable <|.. TFunction
TNamedEntity <|.. TFunction
TTypedEntity <|.. TFunction
TWithLocalVariables <|.. TFunction
TWithParameters <|.. TFunction
TWithStatements <|.. TFunction
TEntityMetaLevelDependency <|.. TFunction
TWithClasses <|.. ContainerEntity
TWithFunctions <|.. ContainerEntity
TWithLocalVariables <|.. ContainerEntity
TWithInterfaces <|.. ContainerEntity
TFileSystemEntity <|.. TFile
TAssociation <|.. TInheritance
TEntityMetaLevelDependency <|.. TComment
TParameterConcretization <|.. ParameterConcretization
TWithStatements <|.. ScriptEntity
TSourceAnchor <|.. SourceAnchor
TWithTypes <|.. TWithInterfaces
TType <|.. TEnum
TWithEnumValues <|.. TEnum
TImportable <|.. NamedEntity
TGenericParameterType <|.. ParameterType
TTypedEntity <|.. ParameterType
TWithInheritances <|.. ParameterType
TInvocationsReceiver <|.. NamedEntity
TNamedEntity <|.. NamedEntity
TEntityMetaLevelDependency <|.. NamedEntity
TAssociation <|.. TParameterConcretization
TImportable <|.. Variable
TLocalVariable <|.. Variable
TFileAnchor <|.. TIndexedFileNavigation
TDefinedInModule <|.. ArrowFunction
TFunction <|.. ArrowFunction
TStructuralEntity <|.. TParameter
TImportable <|.. ArrowFunction
TInvocable <|.. ArrowFunction
TAccessible <|.. TStructuralEntity
TNamedEntity <|.. TStructuralEntity
TSourceEntity <|.. TStructuralEntity
TTypedEntity <|.. TStructuralEntity
TEntityMetaLevelDependency <|.. TStructuralEntity
TSourceEntity <|.. SourcedEntity
TWithComments <|.. SourcedEntity
TStructuralEntity <|.. TEnumValue
TAssociation <|.. TAccess
TEnumValue <|.. EnumValue
TDefinedInModule <|.. Function
TFunction <|.. Function
TImportable <|.. Function
TInvocable <|.. Function
TImportable <|.. Alias
TImportable <|.. Module
TWithImports <|.. Module
TWithLocalVariables <|.. Module
TDefinedInModule <|.. Namespace
TImportable <|.. Namespace
TNamespace <|.. Namespace
TNamedEntity <|.. TType
TReferenceable <|.. TType
TSourceEntity <|.. TType
TEntityMetaLevelDependency <|.. TType
TPrimitiveType <|.. PrimitiveType
TStructuralEntity <|.. TAttribute
TInvocationsReceiver <|.. TClass
TType <|.. TClass
TWithAttributes <|.. TClass
TWithComments <|.. TClass
TParameter <|.. Parameter
TWithInheritances <|.. TClass
TWithMethods <|.. TClass
TSourceEntity <|.. TWithStatements
TWithAccesses <|.. TWithStatements
TFolder <|.. Folder
TSourceLanguage <|.. SourceLanguage
TWithInvocations <|.. TWithStatements
TWithReferences <|.. TWithStatements
THasSignature <|.. Invocation
TInvocation <|.. Invocation
TCanBeAbstract <|.. Method
TAssociation <|.. TImplementation
TCanBeClassSide <|.. Method
THasKind <|.. Method
THasVisibility <|.. Method
TImportable <|.. Method
TMethod <|.. Method
TType <|.. TGenericParameterType
THasSignature <|.. TMethod
TInvocation "outgoingInvocations*" -- "sender" TWithInvocations
TWithAttributes "parentType" o-- "attributes*" TAttribute
TParametricEntity "genericEntities*" -- "genericParameters*" TGenericParameterType
TWithInheritances "subclass" -- "superInheritances*" TInheritance
TWithInheritances "superclass" -- "subInheritances*" TInheritance
TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType
TImplementable "interface" -- "implementations*" TImplementation
TImport "incomingImports*" -- "importedEntity" TImportable
TConcreteParameterType "concreteParameter" -- "generics*" TParameterConcretization
TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables
Model -- "sourceLanguage" TSourceLanguage
TConcretization "concretizations*" -- "parameterConcretizations*" TParameterConcretization
Decorator "decorators*" -- "decoratedEntity" NamedEntity
TImport "outgoingImports*" -- "importingEntity" TWithImports
TConcretization "concretizations*" -- "genericEntity" TParametricEntity
TWithMethods "parentType" o-- "methods*" TMethod
TConcreteParameterType "concreteParameters*" -- "concreteEntities*" TParametricEntity
TFunction "functions*" --o "functionOwner" TWithFunctions
TWithTypes "typeContainer" o-- "types*" TType
TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation
TInvocable "candidates*" -- "incomingInvocations*" TInvocation
TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation
TConcretization "genericization" -- "concreteEntity" TParametricEntity
TSourceEntity "element" -- "sourceAnchor" TSourceAnchor
TWithAccesses "accessor" -- "accesses*" TAccess
TTypedEntity "typedEntities*" -- "declaredType" TType
TComment "comments*" --o "commentedEntity" TWithComments
@enduml
\ No newline at end of file
+@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class Entity <<(C,white)>> #CCFFFF {
}
class TMethod <<(T,white)External>> #FFFFCC {
}
class NamedEntity <<(C,white)>> #CCFFFF {
}
class TImport <<(T,white)External>> #FFFFCC {
}
class TFolder <<(T,white)External>> #FFFFCC {
Number numberOfEmptyLinesOfText
Number totalNumberOfLinesOfText
Number numberOfFiles
Number numberOfFolders
}
class Enum <<(C,white)>> #CCFFFF {
}
class ContainerEntity <<(C,white)>> #CCFFFF {
}
class Interface <<(C,white)>> #CCFFFF {
}
class TTypedEntity <<(T,white)External>> #FFFFCC {
}
class THasVisibility <<(T,white)External>> #FFFFCC {
Boolean isProtected
Boolean isPublic
String visibility
Boolean isPackageVisibility
Boolean isPrivate
}
class File <<(C,white)>> #CCFFFF {
}
class TImportable <<(T,white)External>> #FFFFCC {
}
class ParameterType <<(C,white)>> #CCFFFF {
}
class IndexedFileAnchor <<(C,white)>> #CCFFFF {
}
class TCanImplement <<(T,white)External>> #FFFFCC {
}
class Module <<(C,white)>> #CCFFFF {
}
class TFile <<(T,white)External>> #FFFFCC {
Number numberOfEmptyLinesOfText
Number totalNumberOfLinesOfText
Number numberOfCharacters
Number averageNumberOfCharactersPerLine
Number numberOfKiloBytes
Number numberOfBytes
}
class TInvocationsReceiver <<(T,white)External>> #FFFFCC {
}
class TWithStatements <<(T,white)External>> #FFFFCC {
Number numberOfStatements
}
class TInheritance <<(T,white)External>> #FFFFCC {
}
class TNamedEntity <<(T,white)External>> #FFFFCC {
String name
}
class Namespace <<(C,white)>> #CCFFFF {
}
class FamixTypeScriptModel <<(C,white)>> #CCFFFF {
}
class Parameter <<(C,white)>> #CCFFFF {
}
class Implementation <<(C,white)>> #CCFFFF {
}
class ParametricFunction <<(C,white)>> #CCFFFF {
}
class Alias <<(C,white)>> #CCFFFF {
}
class Folder <<(C,white)>> #CCFFFF {
}
class TAttribute <<(T,white)External>> #FFFFCC {
Number hierarchyNestingLevel
}
class TInvocation <<(T,white)External>> #FFFFCC {
}
class TComment <<(T,white)External>> #FFFFCC {
String content
}
class THasImmediateSource <<(T,white)External>> #FFFFCC {
String source
}
class Entity <<(C,white)External>> #FFFFCC {
Boolean isTagged
Number numberOfTags
Boolean isDead
}
class Method <<(C,white)>> #CCFFFF {
}
class ParametricInterface <<(C,white)>> #CCFFFF {
}
class Concretization <<(C,white)>> #CCFFFF {
}
class THasKind <<(T,white)External>> #FFFFCC {
Boolean isConstructor
Boolean isSetter
String kind
Boolean isGetter
Boolean isConstant
}
class TWithLocalVariables <<(T,white)External>> #FFFFCC {
}
class Comment <<(C,white)>> #CCFFFF {
Boolean isJSDoc
}
class TClassMetrics <<(T,white)>> #CCFFFF {
}
class TWithComments <<(T,white)External>> #FFFFCC {
Number numberOfComments
Boolean hasComments
}
class TWithInheritances <<(T,white)External>> #FFFFCC {
Number subclassHierarchyDepth
Number numberOfSubclasses
Number hierarchyNestingLevel
Number numberOfDirectSubclasses
}
class TWithAttributes <<(T,white)External>> #FFFFCC {
Number numberOfAttributes
}
class TParameterConcretization <<(T,white)External>> #FFFFCC {
}
class TClassMetrics <<(T,white)External>> #FFFFCC {
Number numberOfLocallyDefinedMethods
Number numberOfMethodsOverridden
Number totalNumberOfSubclasses
Number numberOfAttributesInherited
Number numberOfMethodsInHierarchy
Number numberOfMethodsInherited
}
class BehaviouralEntity <<(C,white)>> #CCFFFF {
}
class TCanBeClassSide <<(T,white)External>> #FFFFCC {
Boolean isClassSide
}
class Property <<(C,white)>> #CCFFFF {
Boolean isJavaScriptPrivate
Boolean isDefinitelyAssigned
Boolean readOnly
Boolean isOptional
}
class ArrowFunction <<(C,white)>> #CCFFFF {
}
class TWithInterfaces <<(T,white)>> #CCFFFF {
}
class TWithAccesses <<(T,white)External>> #FFFFCC {
}
class TParametricEntity <<(T,white)External>> #FFFFCC {
}
class Decorator <<(C,white)>> #CCFFFF {
String expression
}
class TWithInvocations <<(T,white)External>> #FFFFCC {
Number numberOfOutgoingInvocations
}
class ParametricClass <<(C,white)>> #CCFFFF {
}
class TClass <<(T,white)External>> #FFFFCC {
Number weightOfAClass
Boolean isTestCase
}
class TLCOMMetrics <<(T,white)External>> #FFFFCC {
Number lcom3
Number lcom2
}
class TSourceLanguage <<(T,white)External>> #FFFFCC {
}
class Accessor <<(C,white)>> #CCFFFF {
}
class EnumValue <<(C,white)>> #CCFFFF {
}
class TWithFunctions <<(T,white)External>> #FFFFCC {
}
class Inheritance <<(C,white)>> #CCFFFF {
}
class TInvocable <<(T,white)External>> #FFFFCC {
}
class TStructuralEntity <<(T,white)External>> #FFFFCC {
}
class TFunctionMetrics <<(T,white)>> #CCFFFF {
}
class ScopingEntity <<(C,white)>> #CCFFFF {
}
class TLocalVariable <<(T,white)External>> #FFFFCC {
}
class TPrimitiveType <<(T,white)External>> #FFFFCC {
}
class Invocation <<(C,white)>> #CCFFFF {
}
class Model <<(C,white)External>> #FFFFCC {
Number numberOfLinesOfCode
Number numberOfModelClasses
Number numberOfMethods
Number numberOfClassesPerPackage
Number averageCyclomaticComplexity
Number numberOfLinesOfCodePerClass
Number numberOfModelMethods
Number numberOfClasses
Number numberOfLinesOfCodePerPackage
Number numberOfClassesPerPackage
Number numberOfLinesOfCodePerMethod
}
class SourcedEntity <<(C,white)>> #CCFFFF {
}
class TWithImports <<(T,white)External>> #FFFFCC {
}
class TAccess <<(T,white)External>> #FFFFCC {
Boolean isReadWriteUnknown
Boolean isRead
Boolean isWrite
}
class ParametricMethod <<(C,white)>> #CCFFFF {
}
class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC {
Number numberOfInternalProviders
Number fanIn
Number numberOfInternalClients
Number numberOfExternalProviders
Number numberOfDeadChildren
Number numberOfExternalClients
Boolean isRoot
Number numberOfChildren
Boolean isDead
Number fanOut
}
class TCanBeAbstract <<(T,white)External>> #FFFFCC {
Boolean isAbstract
}
class Variable <<(C,white)>> #CCFFFF {
}
class TSourceAnchor <<(T,white)External>> #FFFFCC {
Number lineCount
}
class TConcreteParameterType <<(T,white)External>> #FFFFCC {
}
class Class <<(C,white)>> #CCFFFF {
}
class TGenericParameterType <<(T,white)External>> #FFFFCC {
}
class ImportClause <<(C,white)>> #CCFFFF {
}
class SourceLanguage <<(C,white)>> #CCFFFF {
}
class SourceTextAnchor <<(C,white)>> #CCFFFF {
}
class ParameterConcretization <<(C,white)>> #CCFFFF {
}
class Access <<(C,white)>> #CCFFFF {
}
class TWithMethods <<(T,white)External>> #FFFFCC {
Number numberOfAbstractMethods
Number numberOfMethods
Number tightClassCohesion
Number weightedMethodCount
}
class TIndexedFileNavigation <<(T,white)External>> #FFFFCC {
Number endPos
Number startPos
}
class TNamespace <<(T,white)External>> #FFFFCC {
}
class TWithClasses <<(T,white)External>> #FFFFCC {
Number numberOfClasses
}
class JSDoc <<(C,white)>> #CCFFFF {
}
class TEnum <<(T,white)External>> #FFFFCC {
}
class THasSignature <<(T,white)External>> #FFFFCC {
String signature
}
class PrimitiveType <<(C,white)>> #CCFFFF {
}
class TImplementation <<(T,white)External>> #FFFFCC {
}
class Function <<(C,white)>> #CCFFFF {
}
class Reference <<(C,white)>> #CCFFFF {
}
class StructuralEntity <<(C,white)>> #CCFFFF {
}
class ScriptEntity <<(C,white)>> #CCFFFF {
}
class implicitVariable <<(C,white)>> #CCFFFF {
}
class TDefinedInModule <<(T,white)External>> #FFFFCC {
}
class TType <<(T,white)External>> #FFFFCC {
}
class TConcretization <<(T,white)External>> #FFFFCC {
}
class Type <<(C,white)>> #CCFFFF {
}
class SourceAnchor <<(C,white)>> #CCFFFF {
}
class TImplementable <<(T,white)External>> #FFFFCC {
}
class TEnumValue <<(T,white)External>> #FFFFCC {
}
class TParameter <<(T,white)External>> #FFFFCC {
}
class TEntityCreator <<(T,white)>> #CCFFFF {
}
class ParametricArrowFunction <<(C,white)>> #CCFFFF {
}
class TSourceEntity <<(T,white)External>> #FFFFCC {
Number numberOfLinesOfCode
Number duplicationRate
Number numberOfLinesOfCodeWithMoreThanOneCharacter
Boolean containsReplicas
Boolean isStub
String sourceText
}
class TWithTypes <<(T,white)External>> #FFFFCC {
}
class TFunction <<(T,white)External>> #FFFFCC {
}
Entity <|-- Entity
SourcedEntity <|-- NamedEntity
Type <|-- Enum
Type <|-- Interface
NamedEntity <|-- ContainerEntity
NamedEntity <|-- File
Type <|-- ParameterType
SourceAnchor <|-- IndexedFileAnchor
ScriptEntity <|-- Module
ScopingEntity <|-- Namespace
Entity <|-- Implementation
Function <|-- ParametricFunction
NamedEntity <|-- Folder
NamedEntity <|-- Alias
Model <|-- FamixTypeScriptModel
StructuralEntity <|-- Parameter
Object <|-- Entity
BehaviouralEntity <|-- Method
Interface <|-- ParametricInterface
Entity <|-- Concretization
SourcedEntity <|-- Comment
ContainerEntity <|-- BehaviouralEntity
StructuralEntity <|-- Property
BehaviouralEntity <|-- ArrowFunction
NamedEntity <|-- Decorator
Class <|-- ParametricClass
Method <|-- Accessor
StructuralEntity <|-- EnumValue
Entity <|-- Inheritance
ContainerEntity <|-- ScopingEntity
AbstractGroup <|-- Model
Entity <|-- Invocation
Entity <|-- SourcedEntity
Method <|-- ParametricMethod
StructuralEntity <|-- Variable
Type <|-- Class
Entity <|-- ImportClause
Entity <|-- SourceLanguage
Entity <|-- ParameterConcretization
SourceAnchor <|-- SourceTextAnchor
Entity <|-- Access
SourcedEntity <|-- JSDoc
Type <|-- PrimitiveType
BehaviouralEntity <|-- Function
Entity <|-- Reference
ScopingEntity <|-- ScriptEntity
ContainerEntity <|-- Type
ArrowFunction <|-- ParametricArrowFunction
Entity <|-- SourceAnchor
NamedEntity <|-- StructuralEntity
Variable <|-- implicitVariable
TInvocable <|.. TFunction
TNamedEntity <|.. TFunction
TTypedEntity <|.. TFunction
TWithLocalVariables <|.. TFunction
TWithParameters <|.. TFunction
TWithStatements <|.. TFunction
TEntityMetaLevelDependency <|.. TFunction
THasSignature <|.. TMethod
TImportable <|.. NamedEntity
TInvocationsReceiver <|.. NamedEntity
TNamedEntity <|.. NamedEntity
TEntityMetaLevelDependency <|.. NamedEntity
TAssociation <|.. TImport
TInvocable <|.. TMethod
TFileSystemEntity <|.. TFolder
TMethodMetrics <|.. TMethod
TNamedEntity <|.. TMethod
TTypedEntity <|.. TMethod
TWithImplicitVariables <|.. TMethod
TWithLocalVariables <|.. TMethod
TWithParameters <|.. TMethod
TWithStatements <|.. TMethod
TEntityMetaLevelDependency <|.. TMethod
TEnum <|.. Enum
TImportable <|.. Enum
TImplementable <|.. Interface
TInvocationsReceiver <|.. Interface
TWithAttributes <|.. Interface
TWithInheritances <|.. Interface
TWithMethods <|.. Interface
TWithClasses <|.. ContainerEntity
TWithFunctions <|.. ContainerEntity
TWithLocalVariables <|.. ContainerEntity
TWithInterfaces <|.. ContainerEntity
TFile <|.. File
TGenericParameterType <|.. ParameterType
TTypedEntity <|.. ParameterType
TWithInheritances <|.. ParameterType
TIndexedFileNavigation <|.. IndexedFileAnchor
TImportable <|.. Module
TFileSystemEntity <|.. TFile
TWithImports <|.. Module
TWithLocalVariables <|.. Module
TDefinedInModule <|.. Namespace
TImportable <|.. Namespace
TNamespace <|.. Namespace
TImplementation <|.. Implementation
TParametricEntity <|.. ParametricFunction
TSourceEntity <|.. TWithStatements
TFolder <|.. Folder
TImportable <|.. Alias
TWithAccesses <|.. TWithStatements
TWithInvocations <|.. TWithStatements
TWithReferences <|.. TWithStatements
TEntityCreator <|.. FamixTypeScriptModel
TAssociation <|.. TInheritance
TParameter <|.. Parameter
TStructuralEntity <|.. TAttribute
TAssociation <|.. TInvocation
THasSignature <|.. TInvocation
TSourceAnchor <|.. THasImmediateSource
TEntityMetaLevelDependency <|.. TComment
TParametricEntity <|.. ParametricInterface
TConcretization <|.. Concretization
TCanBeAbstract <|.. Method
TCanBeClassSide <|.. Method
THasKind <|.. Method
THasVisibility <|.. Method
TComment <|.. Comment
TImportable <|.. Method
TMethod <|.. Method
TAssociation <|.. TParameterConcretization
TAttribute <|.. Property
TCanBeClassSide <|.. Property
THasVisibility <|.. Property
TDefinedInModule <|.. ArrowFunction
TFunction <|.. ArrowFunction
TImportable <|.. ArrowFunction
TInvocable <|.. ArrowFunction
TFunctionMetrics <|.. ArrowFunction
TWithTypes <|.. TWithInterfaces
TImportable <|.. Decorator
TParametricEntity <|.. ParametricClass
TInvocationsReceiver <|.. TClass
TType <|.. TClass
TWithAttributes <|.. TClass
TWithComments <|.. TClass
TWithInheritances <|.. TClass
TWithMethods <|.. TClass
TEnumValue <|.. EnumValue
TInheritance <|.. Inheritance
TAccessible <|.. TStructuralEntity
TNamedEntity <|.. TStructuralEntity
TSourceEntity <|.. TStructuralEntity
TTypedEntity <|.. TStructuralEntity
TEntityMetaLevelDependency <|.. TStructuralEntity
TStructuralEntity <|.. TLocalVariable
TWithAccesses <|.. ScopingEntity
TWithInvocations <|.. ScopingEntity
TType <|.. TPrimitiveType
THasSignature <|.. Invocation
TSourceEntity <|.. SourcedEntity
TWithComments <|.. SourcedEntity
TParametricEntity <|.. ParametricMethod
TInvocation <|.. Invocation
TAssociation <|.. TAccess
TImportable <|.. Variable
TLocalVariable <|.. Variable
TType <|.. TConcreteParameterType
TCanBeAbstract <|.. Class
TCanImplement <|.. Class
TClass <|.. Class
TClassMetrics <|.. Class
TImport <|.. ImportClause
TImportable <|.. Class
TLCOMMetrics <|.. Class
TParameterConcretization <|.. ParameterConcretization
TSourceLanguage <|.. SourceLanguage
TWithAccesses <|.. Class
TWithInvocations <|.. Class
TClassMetrics <|.. Class
THasImmediateSource <|.. SourceTextAnchor
TType <|.. TGenericParameterType
TAccess <|.. Access
TFileAnchor <|.. TIndexedFileNavigation
TNamedEntity <|.. TNamespace
TSourceEntity <|.. TNamespace
TWithTypes <|.. TWithClasses
TEntityMetaLevelDependency <|.. TNamespace
TPrimitiveType <|.. PrimitiveType
TType <|.. TEnum
TWithStatements <|.. ScriptEntity
TDefinedInModule <|.. Function
TFunction <|.. Function
TImportable <|.. Function
TInvocable <|.. Function
TFunctionMetrics <|.. Function
TNamedEntity <|.. TType
TReferenceable <|.. TType
TSourceEntity <|.. TType
TEntityMetaLevelDependency <|.. TType
TAssociation <|.. TConcretization
TConcreteParameterType <|.. Type
TStructuralEntity <|.. TParameter
TImportable <|.. Type
TType <|.. Type
TParametricEntity <|.. ParametricArrowFunction
TWithMethods <|.. Type
TSourceAnchor <|.. SourceAnchor
TStructuralEntity <|.. StructuralEntity
TWithEnumValues <|.. TEnum
TAssociation <|.. TImplementation
TStructuralEntity <|.. TEnumValue
THasSignature <|.. TFunction
TWithLocalVariables "parentBehaviouralEntity" o-- "localVariables*" TLocalVariable
TParametricEntity "genericEntities*" -- "genericParameters*" TGenericParameterType
TSourceAnchor "sourceAnchor" -- "element" TSourceEntity
TMethod "methods*" --o "parentType" TWithMethods
TImport "outgoingImports*" -- "importingEntity" TWithImports
TInvocation "outgoingInvocations*" -- "sender" TWithInvocations
TParametricEntity "genericEntity" -- "concretizations*" TConcretization
TImplementation "implementations*" -- "interface" TImplementable
TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation
TWithFunctions "functionOwner" o-- "functions*" TFunction
TWithAccesses "accessor" -- "accesses*" TAccess
Model -- "sourceLanguage" TSourceLanguage
TInvocationsReceiver "receiver" -- "receivingInvocations*" TInvocation
TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType
TInheritance "subInheritances*" -- "superclass" TWithInheritances
TType "types*" --o "typeContainer" TWithTypes
TParametricEntity "concreteEntity" -- "genericization" TConcretization
TInvocation "incomingInvocations*" -- "candidates*" TInvocable
TParameterConcretization "concretizations*" -- "genericParameter" TGenericParameterType
NamedEntity "decoratedEntity" -- "decorators*" Decorator
TInheritance "superInheritances*" -- "subclass" TWithInheritances
TImport "incomingImports*" -- "importedEntity" TImportable
TComment "comments*" --o "commentedEntity" TWithComments
TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType
TTypedEntity "typedEntities*" -- "declaredType" TType
TAttribute "attributes*" --o "parentType" TWithAttributes
TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization
@enduml
\ No newline at end of file
diff --git a/doc-uml/FamixTypeScript-traits.svg b/doc-uml/FamixTypeScript-traits.svg
index 1366780..7f78db7 100644
--- a/doc-uml/FamixTypeScript-traits.svg
+++ b/doc-uml/FamixTypeScript-traits.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/doc-uml/FamixTypeScript.puml b/doc-uml/FamixTypeScript.puml
index 0f34f03..2107bf1 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 SourceLanguage <<(C,white)>> #CCFFFF {
}
class ParameterConcretization <<(C,white)>> #CCFFFF {
}
class implicitVariable <<(C,white)>> #CCFFFF {
}
class ParameterType <<(C,white)>> #CCFFFF {
}
class SourceAnchor <<(C,white)>> #CCFFFF {
}
class JSDoc <<(C,white)>> #CCFFFF {
}
class Comment <<(C,white)>> #CCFFFF {
Boolean isJSDoc
}
class ParametricInterface <<(C,white)>> #CCFFFF {
}
class SourceTextAnchor <<(C,white)>> #CCFFFF {
}
class FamixTypeScriptModel <<(C,white)>> #CCFFFF {
}
class BehaviouralEntity <<(C,white)>> #CCFFFF {
}
class PrimitiveType <<(C,white)>> #CCFFFF {
}
class Parameter <<(C,white)>> #CCFFFF {
}
class Type <<(C,white)>> #CCFFFF {
}
class Alias <<(C,white)>> #CCFFFF {
}
class Entity <<(C,white)>> #CCFFFF {
}
class Namespace <<(C,white)>> #CCFFFF {
}
class ContainerEntity <<(C,white)>> #CCFFFF {
}
class Property <<(C,white)>> #CCFFFF {
Boolean isJavaScriptPrivate
Boolean isDefinitelyAssigned
Boolean isOptional
Boolean readOnly
}
class Enum <<(C,white)>> #CCFFFF {
}
class Interface <<(C,white)>> #CCFFFF {
}
class Folder <<(C,white)>> #CCFFFF {
}
class ParametricMethod <<(C,white)>> #CCFFFF {
}
class Invocation <<(C,white)>> #CCFFFF {
}
class ImportClause <<(C,white)>> #CCFFFF {
}
class NamedEntity <<(C,white)>> #CCFFFF {
}
class Variable <<(C,white)>> #CCFFFF {
}
class ParametricFunction <<(C,white)>> #CCFFFF {
}
class Decorator <<(C,white)>> #CCFFFF {
String expression
}
class Access <<(C,white)>> #CCFFFF {
}
class Class <<(C,white)>> #CCFFFF {
}
class TWithInterfaces <<(T,white)>> #CCFFFF {
}
class TEntityCreator <<(T,white)>> #CCFFFF {
}
class Method <<(C,white)>> #CCFFFF {
}
class File <<(C,white)>> #CCFFFF {
}
class Module <<(C,white)>> #CCFFFF {
}
class IndexedFileAnchor <<(C,white)>> #CCFFFF {
}
class EnumValue <<(C,white)>> #CCFFFF {
}
class SourcedEntity <<(C,white)>> #CCFFFF {
}
class TClassMetrics <<(T,white)>> #CCFFFF {
}
class ArrowFunction <<(C,white)>> #CCFFFF {
}
class Concretization <<(C,white)>> #CCFFFF {
}
class Inheritance <<(C,white)>> #CCFFFF {
}
class StructuralEntity <<(C,white)>> #CCFFFF {
}
class Accessor <<(C,white)>> #CCFFFF {
}
class Reference <<(C,white)>> #CCFFFF {
}
class ScriptEntity <<(C,white)>> #CCFFFF {
}
class Implementation <<(C,white)>> #CCFFFF {
}
class ScopingEntity <<(C,white)>> #CCFFFF {
}
class ParametricClass <<(C,white)>> #CCFFFF {
}
class Function <<(C,white)>> #CCFFFF {
}
class ParametricArrowFunction <<(C,white)>> #CCFFFF {
}
Entity <|-- SourceLanguage
Entity <|-- ParameterConcretization
Type <|-- ParameterType
Variable <|-- implicitVariable
Entity <|-- SourceAnchor
SourcedEntity <|-- JSDoc
SourcedEntity <|-- Comment
Interface <|-- ParametricInterface
SourceAnchor <|-- SourceTextAnchor
ContainerEntity <|-- BehaviouralEntity
Type <|-- PrimitiveType
NamedEntity <|-- Alias
StructuralEntity <|-- Parameter
ContainerEntity <|-- Type
NamedEntity <|-- ContainerEntity
ScopingEntity <|-- Namespace
StructuralEntity <|-- Property
Type <|-- Enum
Type <|-- Interface
NamedEntity <|-- Folder
Entity <|-- Invocation
SourcedEntity <|-- NamedEntity
Method <|-- ParametricMethod
Entity <|-- ImportClause
StructuralEntity <|-- Variable
Function <|-- ParametricFunction
NamedEntity <|-- Decorator
Entity <|-- Access
Type <|-- Class
BehaviouralEntity <|-- Method
NamedEntity <|-- File
ScriptEntity <|-- Module
SourceAnchor <|-- IndexedFileAnchor
Entity <|-- SourcedEntity
BehaviouralEntity <|-- ArrowFunction
Entity <|-- Concretization
StructuralEntity <|-- EnumValue
Entity <|-- Inheritance
NamedEntity <|-- StructuralEntity
Method <|-- Accessor
Entity <|-- Reference
ScopingEntity <|-- ScriptEntity
Entity <|-- Implementation
ContainerEntity <|-- ScopingEntity
Class <|-- ParametricClass
BehaviouralEntity <|-- Function
ArrowFunction <|-- ParametricArrowFunction
TEntityCreator <|.. FamixTypeScriptModel
TWithInterfaces <|.. ContainerEntity
TClassMetrics <|.. Class
NamedEntity "decoratedEntity" -- "decorators*" Decorator
@enduml
\ No newline at end of file
+@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class Parameter <<(C,white)>> #CCFFFF {
}
class Alias <<(C,white)>> #CCFFFF {
}
class Type <<(C,white)>> #CCFFFF {
}
class BehaviouralEntity <<(C,white)>> #CCFFFF {
}
class SourceLanguage <<(C,white)>> #CCFFFF {
}
class TEntityCreator <<(T,white)>> #CCFFFF {
}
class SourcedEntity <<(C,white)>> #CCFFFF {
}
class ContainerEntity <<(C,white)>> #CCFFFF {
}
class Access <<(C,white)>> #CCFFFF {
}
class ParametricInterface <<(C,white)>> #CCFFFF {
}
class TWithInterfaces <<(T,white)>> #CCFFFF {
}
class Decorator <<(C,white)>> #CCFFFF {
String expression
}
class Function <<(C,white)>> #CCFFFF {
}
class Variable <<(C,white)>> #CCFFFF {
}
class Namespace <<(C,white)>> #CCFFFF {
}
class Implementation <<(C,white)>> #CCFFFF {
}
class Folder <<(C,white)>> #CCFFFF {
}
class StructuralEntity <<(C,white)>> #CCFFFF {
}
class ScriptEntity <<(C,white)>> #CCFFFF {
}
class NamedEntity <<(C,white)>> #CCFFFF {
}
class JSDoc <<(C,white)>> #CCFFFF {
}
class ParameterConcretization <<(C,white)>> #CCFFFF {
}
class File <<(C,white)>> #CCFFFF {
}
class Module <<(C,white)>> #CCFFFF {
}
class ParametricClass <<(C,white)>> #CCFFFF {
}
class ParametricFunction <<(C,white)>> #CCFFFF {
}
class Method <<(C,white)>> #CCFFFF {
}
class PrimitiveType <<(C,white)>> #CCFFFF {
}
class implicitVariable <<(C,white)>> #CCFFFF {
}
class Property <<(C,white)>> #CCFFFF {
Boolean isDefinitelyAssigned
Boolean readOnly
Boolean isOptional
Boolean isJavaScriptPrivate
}
class Concretization <<(C,white)>> #CCFFFF {
}
class Invocation <<(C,white)>> #CCFFFF {
}
class FamixTypeScriptModel <<(C,white)>> #CCFFFF {
}
class ImportClause <<(C,white)>> #CCFFFF {
}
class ParametricMethod <<(C,white)>> #CCFFFF {
}
class Inheritance <<(C,white)>> #CCFFFF {
}
class Reference <<(C,white)>> #CCFFFF {
}
class Enum <<(C,white)>> #CCFFFF {
}
class IndexedFileAnchor <<(C,white)>> #CCFFFF {
}
class ScopingEntity <<(C,white)>> #CCFFFF {
}
class Comment <<(C,white)>> #CCFFFF {
Boolean isJSDoc
}
class EnumValue <<(C,white)>> #CCFFFF {
}
class Accessor <<(C,white)>> #CCFFFF {
}
class SourceTextAnchor <<(C,white)>> #CCFFFF {
}
class TClassMetrics <<(T,white)>> #CCFFFF {
}
class Entity <<(C,white)>> #CCFFFF {
}
class ParametricArrowFunction <<(C,white)>> #CCFFFF {
}
class Class <<(C,white)>> #CCFFFF {
}
class TFunctionMetrics <<(T,white)>> #CCFFFF {
}
class ParameterType <<(C,white)>> #CCFFFF {
}
class Interface <<(C,white)>> #CCFFFF {
}
class ArrowFunction <<(C,white)>> #CCFFFF {
}
class SourceAnchor <<(C,white)>> #CCFFFF {
}
StructuralEntity <|-- Parameter
NamedEntity <|-- Alias
ContainerEntity <|-- Type
ContainerEntity <|-- BehaviouralEntity
Entity <|-- SourceLanguage
Entity <|-- SourcedEntity
NamedEntity <|-- ContainerEntity
Entity <|-- Access
Interface <|-- ParametricInterface
NamedEntity <|-- Decorator
BehaviouralEntity <|-- Function
StructuralEntity <|-- Variable
ScopingEntity <|-- Namespace
Entity <|-- Implementation
NamedEntity <|-- Folder
NamedEntity <|-- StructuralEntity
ScopingEntity <|-- ScriptEntity
SourcedEntity <|-- NamedEntity
SourcedEntity <|-- JSDoc
NamedEntity <|-- File
Entity <|-- ParameterConcretization
ScriptEntity <|-- Module
Class <|-- ParametricClass
Function <|-- ParametricFunction
BehaviouralEntity <|-- Method
Type <|-- PrimitiveType
StructuralEntity <|-- Property
Entity <|-- Concretization
Entity <|-- Invocation
Variable <|-- implicitVariable
Entity <|-- ImportClause
Method <|-- ParametricMethod
Entity <|-- Inheritance
Entity <|-- Reference
Type <|-- Enum
ContainerEntity <|-- ScopingEntity
SourceAnchor <|-- IndexedFileAnchor
SourcedEntity <|-- Comment
StructuralEntity <|-- EnumValue
SourceAnchor <|-- SourceTextAnchor
ArrowFunction <|-- ParametricArrowFunction
Method <|-- Accessor
Type <|-- Class
Type <|-- ParameterType
Type <|-- Interface
BehaviouralEntity <|-- ArrowFunction
Entity <|-- SourceAnchor
TWithInterfaces <|.. ContainerEntity
TFunctionMetrics <|.. Function
TEntityCreator <|.. FamixTypeScriptModel
TClassMetrics <|.. Class
TFunctionMetrics <|.. ArrowFunction
Decorator "decorators*" -- "decoratedEntity" NamedEntity
@enduml
\ No newline at end of file
diff --git a/doc-uml/FamixTypeScript.svg b/doc-uml/FamixTypeScript.svg
index ead54e9..61eff45 100644
--- a/doc-uml/FamixTypeScript.svg
+++ b/doc-uml/FamixTypeScript.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptArrowFunction.class.st b/src/Famix-TypeScript-Entities/FamixTypeScriptArrowFunction.class.st
index 08bb822..1819421 100644
--- a/src/Famix-TypeScript-Entities/FamixTypeScriptArrowFunction.class.st
+++ b/src/Famix-TypeScript-Entities/FamixTypeScriptArrowFunction.class.st
@@ -49,8 +49,8 @@ I represent a TypeScript arrow function.
Class {
#name : 'FamixTypeScriptArrowFunction',
#superclass : 'FamixTypeScriptBehaviouralEntity',
- #traits : 'FamixTDefinedInModule + FamixTFunction + FamixTImportable + FamixTInvocable',
- #classTraits : 'FamixTDefinedInModule classTrait + FamixTFunction classTrait + FamixTImportable classTrait + FamixTInvocable classTrait',
+ #traits : 'FamixTDefinedInModule + FamixTFunction + FamixTImportable + FamixTInvocable + FamixTypeScriptTFunctionMetrics',
+ #classTraits : 'FamixTDefinedInModule classTrait + FamixTFunction classTrait + FamixTImportable classTrait + FamixTInvocable classTrait + FamixTypeScriptTFunctionMetrics classTrait',
#category : 'Famix-TypeScript-Entities-Entities',
#package : 'Famix-TypeScript-Entities',
#tag : 'Entities'
diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptFunction.class.st b/src/Famix-TypeScript-Entities/FamixTypeScriptFunction.class.st
index a0927c2..66ddbdf 100644
--- a/src/Famix-TypeScript-Entities/FamixTypeScriptFunction.class.st
+++ b/src/Famix-TypeScript-Entities/FamixTypeScriptFunction.class.st
@@ -49,8 +49,8 @@ I represent a TypeScript function.
Class {
#name : 'FamixTypeScriptFunction',
#superclass : 'FamixTypeScriptBehaviouralEntity',
- #traits : 'FamixTDefinedInModule + FamixTFunction + FamixTImportable + FamixTInvocable',
- #classTraits : 'FamixTDefinedInModule classTrait + FamixTFunction classTrait + FamixTImportable classTrait + FamixTInvocable classTrait',
+ #traits : 'FamixTDefinedInModule + FamixTFunction + FamixTImportable + FamixTInvocable + FamixTypeScriptTFunctionMetrics',
+ #classTraits : 'FamixTDefinedInModule classTrait + FamixTFunction classTrait + FamixTImportable classTrait + FamixTInvocable classTrait + FamixTypeScriptTFunctionMetrics classTrait',
#category : 'Famix-TypeScript-Entities-Entities',
#package : 'Famix-TypeScript-Entities',
#tag : 'Entities'
diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptTFunctionMetrics.trait.st b/src/Famix-TypeScript-Entities/FamixTypeScriptTFunctionMetrics.trait.st
new file mode 100644
index 0000000..a3e5dc5
--- /dev/null
+++ b/src/Famix-TypeScript-Entities/FamixTypeScriptTFunctionMetrics.trait.st
@@ -0,0 +1,15 @@
+Trait {
+ #name : 'FamixTypeScriptTFunctionMetrics',
+ #category : 'Famix-TypeScript-Entities-Traits',
+ #package : 'Famix-TypeScript-Entities',
+ #tag : 'Traits'
+}
+
+{ #category : 'meta' }
+FamixTypeScriptTFunctionMetrics classSide >> annotation [
+
+
+
+
+ ^ self
+]
diff --git a/src/Famix-TypeScript-Extensions/FamixTypeScriptTFunctionMetrics.extension.st b/src/Famix-TypeScript-Extensions/FamixTypeScriptTFunctionMetrics.extension.st
new file mode 100644
index 0000000..cc3cca5
--- /dev/null
+++ b/src/Famix-TypeScript-Extensions/FamixTypeScriptTFunctionMetrics.extension.st
@@ -0,0 +1,13 @@
+Extension { #name : 'FamixTypeScriptTFunctionMetrics' }
+
+{ #category : '*Famix-TypeScript-Extensions' }
+FamixTypeScriptTFunctionMetrics >> cyclomaticComplexity [
+
+
+ ^ self lookUpPropertyNamed: #cyclomaticComplexity computedAs: [ self computeCyclomaticComplexity ]
+]
+
+{ #category : '*Famix-TypeScript-Extensions' }
+FamixTypeScriptTFunctionMetrics >> cyclomaticComplexity: aNumber [
+ self cacheAt: #cyclomaticComplexity put: aNumber
+]
diff --git a/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st b/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st
index 8a7b66a..130b75b 100644
--- a/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st
+++ b/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st
@@ -1,6 +1,6 @@
-Extension { #name : #FamixTWithSourceLanguages }
+Extension { #name : 'FamixTWithSourceLanguages' }
-{ #category : #'*Famix-TypeScript-Generator' }
+{ #category : '*Famix-TypeScript-Generator' }
FamixTWithSourceLanguages >> formattedSourceText [
^ self sourceLanguage
ifNotNil: [ :language | language format: self sourceText from: self ]
diff --git a/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st b/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st
index ed86b8e..c11f5c6 100644
--- a/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st
+++ b/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st
@@ -1,6 +1,6 @@
Class {
- #name : #FamixTypeScriptGenerator,
- #superclass : #FamixBasicInfrastructureGenerator,
+ #name : 'FamixTypeScriptGenerator',
+ #superclass : 'FamixBasicInfrastructureGenerator',
#instVars : [
'access',
'class',
@@ -44,30 +44,32 @@ Class {
'parametricClass',
'parametricInterface',
'concretization',
- 'parameterConcretization'
+ 'parameterConcretization',
+ 'tTypeScriptFunctionMetrics'
],
- #category : #'Famix-TypeScript-Generator'
+ #category : 'Famix-TypeScript-Generator',
+ #package : 'Famix-TypeScript-Generator'
}
-{ #category : #accessing }
+{ #category : 'accessing' }
FamixTypeScriptGenerator class >> packageName [
^ #'Famix-TypeScript-Entities'
]
-{ #category : #accessing }
+{ #category : 'accessing' }
FamixTypeScriptGenerator class >> packageNameForAnnotations [
^ #'FamixTypeScript'
]
-{ #category : #accessing }
+{ #category : 'accessing' }
FamixTypeScriptGenerator class >> prefix [
^ #'FamixTypeScript'
]
-{ #category : #accessing }
+{ #category : 'accessing' }
FamixTypeScriptGenerator class >> translationDictionary [
| classNames associations |
@@ -79,7 +81,7 @@ FamixTypeScriptGenerator class >> translationDictionary [
^ Dictionary newFrom: associations.
]
-{ #category : #comments }
+{ #category : 'comments' }
FamixTypeScriptGenerator >> commentForConcretization [
"To verify"
^ '## Relations
@@ -113,7 +115,7 @@ FamixTypeScriptGenerator >> commentForConcretization [
'
]
-{ #category : #'as yet unclassified' }
+{ #category : 'as yet unclassified' }
FamixTypeScriptGenerator >> commentForParameterConcretization [
^ '## Relations
======================
@@ -146,7 +148,7 @@ FamixTypeScriptGenerator >> commentForParameterConcretization [
'
]
-{ #category : #comments }
+{ #category : 'comments' }
FamixTypeScriptGenerator >> commentForTCanBeInterface [
^ 'I allow an entity to be an interface abstraction
ex:
@@ -158,13 +160,13 @@ public interface Flyable {
```'
]
-{ #category : #definition }
+{ #category : 'definition' }
FamixTypeScriptGenerator >> commentForTWithInterfaces [
^ 'I can contain interfaces (Packages, Methods, Classes...)'
]
-{ #category : #definition }
+{ #category : 'definition' }
FamixTypeScriptGenerator >> defineClasses [
super defineClasses.
@@ -221,7 +223,7 @@ FamixTypeScriptGenerator >> defineClasses [
"self defineComments."
]
-{ #category : #definition }
+{ #category : 'definition' }
FamixTypeScriptGenerator >> defineHierarchy [
super defineHierarchy.
@@ -283,6 +285,7 @@ FamixTypeScriptGenerator >> defineHierarchy [
function --|> #TDefinedInModule.
function --|> #TInvocable.
function --|> #TImportable.
+ function --|> #TFunctionMetrics.
parametricFunction --|> function.
parametricFunction --|> #TParametricEntity.
@@ -292,6 +295,7 @@ FamixTypeScriptGenerator >> defineHierarchy [
arrowFunction --|> #TDefinedInModule.
arrowFunction --|> #TInvocable.
arrowFunction --|> #TImportable.
+ arrowFunction --|> #TFunctionMetrics. "Duplicate code for adding cyclomatic complexity"
parametricArrowFunction --|> arrowFunction.
parametricArrowFunction --|> #TParametricEntity.
@@ -416,7 +420,7 @@ FamixTypeScriptGenerator >> defineHierarchy [
parameterType --|> #TWithInheritances.
]
-{ #category : #definition }
+{ #category : 'definition' }
FamixTypeScriptGenerator >> defineProperties [
super defineProperties.
@@ -444,13 +448,13 @@ FamixTypeScriptGenerator >> defineProperties [
comment: 'Method is a setter'"
]
-{ #category : #definition }
+{ #category : 'definition' }
FamixTypeScriptGenerator >> defineRelations [
super defineRelations.
(decorator property: #decoratedEntity) *- (namedEntity property: #decorators).
]
-{ #category : #definition }
+{ #category : 'definition' }
FamixTypeScriptGenerator >> defineTraits [
super defineTraits.
@@ -458,9 +462,10 @@ FamixTypeScriptGenerator >> defineTraits [
tWithInterfaces comment: self commentForTWithInterfaces.
tTypeScriptClassMetrics := builder newTraitNamed: #TClassMetrics.
+ tTypeScriptFunctionMetrics := builder newTraitNamed: #TFunctionMetrics.
]
-{ #category : #definition }
+{ #category : 'definition' }
FamixTypeScriptGenerator >> newBuilder [
^ super newBuilder
diff --git a/src/Famix-TypeScript-Generator/package.st b/src/Famix-TypeScript-Generator/package.st
index 41f22d4..44ed289 100644
--- a/src/Famix-TypeScript-Generator/package.st
+++ b/src/Famix-TypeScript-Generator/package.st
@@ -1 +1 @@
-Package { #name : #'Famix-TypeScript-Generator' }
+Package { #name : 'Famix-TypeScript-Generator' }