diff --git a/doc-uml/FamixTypeScript-traits.puml b/doc-uml/FamixTypeScript-traits.puml index 6a52ed8..471d2f7 100644 --- a/doc-uml/FamixTypeScript-traits.puml +++ b/doc-uml/FamixTypeScript-traits.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class EnumValue <<(C,white)>> #CCFFFF { } class TImport <<(T,white)External>> #FFFFCC { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TCanImplement <<(T,white)External>> #FFFFCC { } class Concretization <<(C,white)>> #CCFFFF { } class TMethod <<(T,white)External>> #FFFFCC { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class TComment <<(T,white)External>> #FFFFCC { String content } class ScriptEntity <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class ParameterType <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TParametricEntity <<(T,white)External>> #FFFFCC { } class Namespace <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class TWithComments <<(T,white)External>> #FFFFCC { Boolean hasComments Number numberOfComments } class ParametricFunction <<(C,white)>> #CCFFFF { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TTypedEntity <<(T,white)External>> #FFFFCC { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TLocalVariable <<(T,white)External>> #FFFFCC { } class TInvocation <<(T,white)External>> #FFFFCC { } class ArrowFunction <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Property <<(C,white)>> #CCFFFF { Boolean isOptional Boolean isJavaScriptPrivate Boolean readOnly Boolean isDefinitelyAssigned } class ParametricClass <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class TEnumValue <<(T,white)External>> #FFFFCC { } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class THasKind <<(T,white)External>> #FFFFCC { Boolean isConstant Boolean isGetter Boolean isSetter Boolean isConstructor String kind } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class SourceLanguage <<(C,white)>> #CCFFFF { } class TWithTypes <<(T,white)External>> #FFFFCC { } class Invocation <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfLocallyDefinedMethods Number totalNumberOfSubclasses Number numberOfAttributesInherited Number numberOfMethodsInherited Number numberOfMethodsOverridden Number numberOfMethodsInHierarchy } class ParametricMethod <<(C,white)>> #CCFFFF { } class TClass <<(T,white)External>> #FFFFCC { Boolean isTestCase Number weightOfAClass } class TType <<(T,white)External>> #FFFFCC { } class Enum <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPackageVisibility Boolean isPrivate Boolean isPublic String visibility Boolean isProtected } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class Alias <<(C,white)>> #CCFFFF { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class Function <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfEmptyLinesOfText Number numberOfFolders Number totalNumberOfLinesOfText Number numberOfFiles } class TParameter <<(T,white)External>> #FFFFCC { } class Variable <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class TImplementable <<(T,white)External>> #FFFFCC { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class TImportable <<(T,white)External>> #FFFFCC { } class TFile <<(T,white)External>> #FFFFCC { Number averageNumberOfCharactersPerLine Number numberOfBytes Number numberOfCharacters Number numberOfKiloBytes Number totalNumberOfLinesOfText Number numberOfEmptyLinesOfText } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class NamedEntity <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class ScopingEntity <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class TImplementation <<(T,white)External>> #FFFFCC { } class Method <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Model <<(C,white)External>> #FFFFCC { Number numberOfModelClasses Number numberOfLinesOfCodePerMethod Number numberOfModelMethods Number numberOfClassesPerPackage Number numberOfLinesOfCode Number averageCyclomaticComplexity Number numberOfMethods Number numberOfClasses Number numberOfLinesOfCodePerPackage Number numberOfLinesOfCodePerClass Number numberOfClassesPerPackage } class TConcretization <<(T,white)External>> #FFFFCC { } class StructuralEntity <<(C,white)>> #CCFFFF { } class TEnum <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number weightedMethodCount Number numberOfAbstractMethods Number numberOfMethods Number tightClassCohesion } class Entity <<(C,white)External>> #FFFFCC { Number numberOfTags Boolean isTagged Boolean isDead } class TWithInheritances <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel Number numberOfDirectSubclasses Number numberOfSubclasses Number subclassHierarchyDepth } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class SourcedEntity <<(C,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number endPos Number startPos } class SourceAnchor <<(C,white)>> #CCFFFF { } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number numberOfExternalClients Number numberOfChildren Number fanOut Number fanIn Number numberOfInternalProviders Number numberOfInternalClients Number numberOfExternalProviders Number numberOfDeadChildren Boolean isDead Boolean isRoot } class TFunction <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class TSourceEntity <<(T,white)External>> #FFFFCC { Boolean containsReplicas Number numberOfLinesOfCodeWithMoreThanOneCharacter String sourceText Boolean isStub Number duplicationRate Number numberOfLinesOfCode } class File <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TClassMetrics <<(T,white)>> #CCFFFF { } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class JSDoc <<(C,white)>> #CCFFFF { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TNamespace <<(T,white)External>> #FFFFCC { } class TInheritance <<(T,white)External>> #FFFFCC { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom3 Number lcom2 } class TAccess <<(T,white)External>> #FFFFCC { Boolean isReadWriteUnknown Boolean isWrite Boolean isRead } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TWithAccesses <<(T,white)External>> #FFFFCC { } StructuralEntity <|-- EnumValue Entity <|-- Concretization SourceAnchor <|-- IndexedFileAnchor NamedEntity <|-- Folder ScopingEntity <|-- ScriptEntity Variable <|-- implicitVariable NamedEntity <|-- Decorator Type <|-- ParameterType ContainerEntity <|-- BehaviouralEntity ScopingEntity <|-- Namespace Type <|-- Class Function <|-- ParametricFunction Entity <|-- ParameterConcretization Type <|-- Interface SourcedEntity <|-- Comment BehaviouralEntity <|-- ArrowFunction StructuralEntity <|-- Property Class <|-- ParametricClass Method <|-- Accessor Entity <|-- SourceLanguage Entity <|-- Entity Entity <|-- Invocation Method <|-- ParametricMethod ScriptEntity <|-- Module NamedEntity <|-- Alias Type <|-- Enum BehaviouralEntity <|-- Function StructuralEntity <|-- Variable Interface <|-- ParametricInterface Model <|-- FamixTypeScriptModel SourceAnchor <|-- SourceTextAnchor Entity <|-- Inheritance Entity <|-- Implementation ArrowFunction <|-- ParametricArrowFunction SourcedEntity <|-- NamedEntity NamedEntity <|-- ContainerEntity Type <|-- PrimitiveType Entity <|-- Reference ContainerEntity <|-- ScopingEntity Entity <|-- ImportClause ContainerEntity <|-- Type BehaviouralEntity <|-- Method Entity <|-- Access AbstractGroup <|-- Model NamedEntity <|-- StructuralEntity Object <|-- Entity Entity <|-- SourcedEntity Entity <|-- SourceAnchor NamedEntity <|-- File StructuralEntity <|-- Parameter SourcedEntity <|-- JSDoc TEnumValue <|.. EnumValue TAssociation <|.. TImport TType <|.. TGenericParameterType THasSignature <|.. TMethod TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TConcretization <|.. Concretization TIndexedFileNavigation <|.. IndexedFileAnchor TFolder <|.. Folder TWithStatements <|.. ScriptEntity TEntityMetaLevelDependency <|.. TComment TGenericParameterType <|.. ParameterType TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType TImportable <|.. Decorator TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TParametricEntity <|.. ParametricFunction TParameterConcretization <|.. ParameterConcretization TImplementable <|.. Interface TStructuralEntity <|.. TLocalVariable TInvocationsReceiver <|.. Interface TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TAssociation <|.. TInvocation THasSignature <|.. TInvocation TComment <|.. Comment TDefinedInModule <|.. ArrowFunction TFunction <|.. ArrowFunction TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TAttribute <|.. Property TCanBeClassSide <|.. Property THasVisibility <|.. Property TParametricEntity <|.. ParametricClass TStructuralEntity <|.. TEnumValue TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TType <|.. TConcreteParameterType TSourceLanguage <|.. SourceLanguage TParametricEntity <|.. ParametricMethod THasSignature <|.. Invocation TInvocation <|.. Invocation TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TNamedEntity <|.. TType TReferenceable <|.. TType TSourceEntity <|.. TType TImportable <|.. Module TWithImports <|.. Module TWithLocalVariables <|.. Module TEntityMetaLevelDependency <|.. TType TWithTypes <|.. TWithClasses TImportable <|.. Alias TDefinedInModule <|.. Function TFunction <|.. Function TImportable <|.. Function TInvocable <|.. Function TImportable <|.. Variable TLocalVariable <|.. Variable TStructuralEntity <|.. TParameter TFileSystemEntity <|.. TFolder TParametricEntity <|.. ParametricInterface TEntityCreator <|.. FamixTypeScriptModel TEnum <|.. Enum TImportable <|.. Enum THasImmediateSource <|.. SourceTextAnchor TInheritance <|.. Inheritance TImplementation <|.. Implementation TParametricEntity <|.. ParametricArrowFunction TFileSystemEntity <|.. TFile TAssociation <|.. TParameterConcretization TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TPrimitiveType <|.. PrimitiveType TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TImport <|.. ImportClause TSourceAnchor <|.. THasImmediateSource TWithTypes <|.. TWithInterfaces TConcreteParameterType <|.. Type TImportable <|.. Type TType <|.. Type TWithMethods <|.. Type TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method THasKind <|.. Method THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TAssociation <|.. TImplementation TAccess <|.. Access TAssociation <|.. TConcretization TStructuralEntity <|.. StructuralEntity TType <|.. TEnum TWithEnumValues <|.. TEnum TStructuralEntity <|.. TAttribute TFileAnchor <|.. TIndexedFileNavigation TSourceEntity <|.. SourcedEntity TWithComments <|.. SourcedEntity TSourceAnchor <|.. SourceAnchor THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TFile <|.. File TParameter <|.. Parameter TType <|.. TPrimitiveType TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TAssociation <|.. TInheritance TAssociation <|.. TAccess TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation TInvocable "candidates*" -- "incomingInvocations*" TInvocation TWithAttributes "parentType" o-- "attributes*" TAttribute TParametricEntity "concreteEntity" -- "genericization" TConcretization TSourceAnchor "sourceAnchor" -- "element" TSourceEntity TInvocation "outgoingInvocations*" -- "sender" TWithInvocations TComment "comments*" --o "commentedEntity" TWithComments TWithInheritances "superclass" -- "subInheritances*" TInheritance Decorator "decorators*" -- "decoratedEntity" NamedEntity TGenericParameterType "genericParameters*" -- "genericEntities*" TParametricEntity TMethod "methods*" --o "parentType" TWithMethods TWithFunctions "functionOwner" o-- "functions*" TFunction TParametricEntity "genericEntity" -- "concretizations*" TConcretization TTypedEntity "typedEntities*" -- "declaredType" TType TWithInheritances "subclass" -- "superInheritances*" TInheritance TConcreteParameterType "concreteParameter" -- "generics*" TParameterConcretization TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TInvocation "receivingInvocations*" -- "receiver" TInvocationsReceiver TAccess "accesses*" -- "accessor" TWithAccesses TImplementable "interface" -- "implementations*" TImplementation TImport "incomingImports*" -- "importedEntity" TImportable TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization TWithLocalVariables "parentBehaviouralEntity" o-- "localVariables*" TLocalVariable TImport "outgoingImports*" -- "importingEntity" TWithImports TWithTypes "typeContainer" o-- "types*" TType Model -- "sourceLanguage" TSourceLanguage TGenericParameterType "genericParameter" -- "concretizations*" TParameterConcretization @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class EnumValue <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class TCanBeAbstract <<(T,white)External>> #FFFFCC { Boolean isAbstract } class TClassMetrics <<(T,white)External>> #FFFFCC { Number numberOfMethodsInHierarchy Number numberOfMethodsInherited Number numberOfAttributesInherited Number totalNumberOfSubclasses Number numberOfMethodsOverridden Number numberOfLocallyDefinedMethods } class ParametricClass <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class Variable <<(C,white)>> #CCFFFF { } class TInvocable <<(T,white)External>> #FFFFCC { } class Entity <<(C,white)External>> #FFFFCC { Boolean isDead Boolean isTagged Number numberOfTags } class TImplementable <<(T,white)External>> #FFFFCC { } class TEntityCreator <<(T,white)>> #CCFFFF { } class TIndexedFileNavigation <<(T,white)External>> #FFFFCC { Number startPos Number endPos } class StructuralEntity <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class TWithInvocations <<(T,white)External>> #FFFFCC { Number numberOfOutgoingInvocations } class TEntityMetaLevelDependency <<(T,white)External>> #FFFFCC { Number fanIn Number numberOfDeadChildren Number numberOfChildren Number numberOfExternalClients Number numberOfInternalClients Number numberOfExternalProviders Boolean isRoot Number fanOut Boolean isDead Number numberOfInternalProviders } class ScopingEntity <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class TPrimitiveType <<(T,white)External>> #FFFFCC { } class TLocalVariable <<(T,white)External>> #FFFFCC { } class TImportable <<(T,white)External>> #FFFFCC { } class TType <<(T,white)External>> #FFFFCC { } class Interface <<(C,white)>> #CCFFFF { } class TWithFunctions <<(T,white)External>> #FFFFCC { } class ParameterType <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class TFolder <<(T,white)External>> #FFFFCC { Number numberOfEmptyLinesOfText Number numberOfFiles Number totalNumberOfLinesOfText Number numberOfFolders } class TSourceEntity <<(T,white)External>> #FFFFCC { Number duplicationRate String sourceText Boolean isStub Boolean containsReplicas Number numberOfLinesOfCodeWithMoreThanOneCharacter Number numberOfLinesOfCode } class TNamedEntity <<(T,white)External>> #FFFFCC { String name } class ParametricFunction <<(C,white)>> #CCFFFF { } class TInvocation <<(T,white)External>> #FFFFCC { } class TReference <<(T,white)External>> #FFFFCC { } class ParametricMethod <<(C,white)>> #CCFFFF { } class TAccess <<(T,white)External>> #FFFFCC { Boolean isWrite Boolean isRead Boolean isReadWriteUnknown } class SourcedEntity <<(C,white)>> #CCFFFF { } class TNamespace <<(T,white)External>> #FFFFCC { } class Namespace <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class TInheritance <<(T,white)External>> #FFFFCC { } class TMethod <<(T,white)External>> #FFFFCC { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TFunction <<(T,white)External>> #FFFFCC { } class TSourceLanguage <<(T,white)External>> #FFFFCC { } class Type <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class TParameter <<(T,white)External>> #FFFFCC { } class TDefinedInModule <<(T,white)External>> #FFFFCC { } class Enum <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean isOptional Boolean isDefinitelyAssigned Boolean readOnly } class TWithAccesses <<(T,white)External>> #FFFFCC { } class ContainerEntity <<(C,white)>> #CCFFFF { } class TWithInheritances <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel Number numberOfDirectSubclasses Number numberOfSubclasses Number subclassHierarchyDepth } class TLCOMMetrics <<(T,white)External>> #FFFFCC { Number lcom3 Number lcom2 } class SourceLanguage <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class Model <<(C,white)External>> #FFFFCC { Number numberOfClassesPerPackage Number numberOfLinesOfCodePerClass Number numberOfClasses Number averageCyclomaticComplexity Number numberOfLinesOfCode Number numberOfLinesOfCodePerMethod Number numberOfModelClasses Number numberOfClassesPerPackage Number numberOfModelMethods Number numberOfLinesOfCodePerPackage Number numberOfMethods } class TWithAttributes <<(T,white)External>> #FFFFCC { Number numberOfAttributes } class THasVisibility <<(T,white)External>> #FFFFCC { Boolean isPublic Boolean isProtected String visibility Boolean isPrivate Boolean isPackageVisibility } class TStructuralEntity <<(T,white)External>> #FFFFCC { } class TGenericParameterType <<(T,white)External>> #FFFFCC { } class TFile <<(T,white)External>> #FFFFCC { Number totalNumberOfLinesOfText Number numberOfEmptyLinesOfText Number numberOfBytes Number numberOfKiloBytes Number averageNumberOfCharactersPerLine Number numberOfCharacters } class Folder <<(C,white)>> #CCFFFF { } class TComment <<(T,white)External>> #FFFFCC { String content } class TEnum <<(T,white)External>> #FFFFCC { } class THasKind <<(T,white)External>> #FFFFCC { String kind Boolean isSetter Boolean isConstructor Boolean isGetter Boolean isConstant } class Alias <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class TParametricEntity <<(T,white)External>> #FFFFCC { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class TWithStatements <<(T,white)External>> #FFFFCC { Number numberOfStatements } class THasImmediateSource <<(T,white)External>> #FFFFCC { String source } class TParameterConcretization <<(T,white)External>> #FFFFCC { } class ArrowFunction <<(C,white)>> #CCFFFF { } class TWithClasses <<(T,white)External>> #FFFFCC { Number numberOfClasses } class ParametricInterface <<(C,white)>> #CCFFFF { } class TImport <<(T,white)External>> #FFFFCC { } class Entity <<(C,white)>> #CCFFFF { } class TTypedEntity <<(T,white)External>> #FFFFCC { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class TConcreteParameterType <<(T,white)External>> #FFFFCC { } class TWithMethods <<(T,white)External>> #FFFFCC { Number tightClassCohesion Number numberOfMethods Number weightedMethodCount Number numberOfAbstractMethods } class Class <<(C,white)>> #CCFFFF { } class THasSignature <<(T,white)External>> #FFFFCC { String signature } class TClassMetrics <<(T,white)>> #CCFFFF { } class TConcretization <<(T,white)External>> #FFFFCC { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class TCanImplement <<(T,white)External>> #FFFFCC { } class Implementation <<(C,white)>> #CCFFFF { } class TCanBeClassSide <<(T,white)External>> #FFFFCC { Boolean isClassSide } class TImplementation <<(T,white)External>> #FFFFCC { } class TWithImports <<(T,white)External>> #FFFFCC { } class TClass <<(T,white)External>> #FFFFCC { Number weightOfAClass Boolean isTestCase } class TAttribute <<(T,white)External>> #FFFFCC { Number hierarchyNestingLevel } class TEnumValue <<(T,white)External>> #FFFFCC { } class TSourceAnchor <<(T,white)External>> #FFFFCC { Number lineCount } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class TWithComments <<(T,white)External>> #FFFFCC { Boolean hasComments Number numberOfComments } class PrimitiveType <<(C,white)>> #CCFFFF { } class TInvocationsReceiver <<(T,white)External>> #FFFFCC { } class TWithLocalVariables <<(T,white)External>> #FFFFCC { } class TWithTypes <<(T,white)External>> #FFFFCC { } StructuralEntity <|-- EnumValue Entity <|-- Access Class <|-- ParametricClass StructuralEntity <|-- Parameter NamedEntity <|-- Decorator StructuralEntity <|-- Variable Object <|-- Entity NamedEntity <|-- StructuralEntity Variable <|-- implicitVariable ContainerEntity <|-- ScopingEntity Method <|-- Accessor Type <|-- ParameterType Type <|-- Interface NamedEntity <|-- File Entity <|-- SourceAnchor SourceAnchor <|-- IndexedFileAnchor ScriptEntity <|-- Module Function <|-- ParametricFunction Method <|-- ParametricMethod Entity <|-- SourcedEntity ScopingEntity <|-- ScriptEntity ScopingEntity <|-- Namespace Model <|-- FamixTypeScriptModel Type <|-- Enum Entity <|-- Inheritance SourceAnchor <|-- SourceTextAnchor BehaviouralEntity <|-- Method Entity <|-- Concretization StructuralEntity <|-- Property NamedEntity <|-- ContainerEntity BehaviouralEntity <|-- Function Entity <|-- SourceLanguage Entity <|-- ImportClause ContainerEntity <|-- Type AbstractGroup <|-- Model Entity <|-- Invocation NamedEntity <|-- Folder NamedEntity <|-- Alias SourcedEntity <|-- JSDoc Entity <|-- ParameterConcretization SourcedEntity <|-- NamedEntity BehaviouralEntity <|-- ArrowFunction Interface <|-- ParametricInterface Entity <|-- Entity SourcedEntity <|-- Comment Type <|-- Class ContainerEntity <|-- BehaviouralEntity Entity <|-- Implementation ArrowFunction <|-- ParametricArrowFunction Entity <|-- Reference Type <|-- PrimitiveType TEnumValue <|.. EnumValue TAccess <|.. Access TParametricEntity <|.. ParametricClass TParameter <|.. Parameter TImportable <|.. Decorator TImportable <|.. Variable TLocalVariable <|.. Variable TFileAnchor <|.. TIndexedFileNavigation TStructuralEntity <|.. StructuralEntity TWithAccesses <|.. ScopingEntity TWithInvocations <|.. ScopingEntity TType <|.. TPrimitiveType TStructuralEntity <|.. TLocalVariable TNamedEntity <|.. TType TReferenceable <|.. TType TGenericParameterType <|.. ParameterType TTypedEntity <|.. ParameterType TWithInheritances <|.. ParameterType TSourceEntity <|.. TType TEntityMetaLevelDependency <|.. TType TImplementable <|.. Interface TFile <|.. File TInvocationsReceiver <|.. Interface TSourceAnchor <|.. SourceAnchor TWithAttributes <|.. Interface TWithInheritances <|.. Interface TWithMethods <|.. Interface TIndexedFileNavigation <|.. IndexedFileAnchor TImportable <|.. Module TFileSystemEntity <|.. TFolder TWithImports <|.. Module TWithLocalVariables <|.. Module TAssociation <|.. TReference TParametricEntity <|.. ParametricFunction TAssociation <|.. TAccess TAssociation <|.. TInvocation THasSignature <|.. TInvocation TParametricEntity <|.. ParametricMethod TSourceEntity <|.. SourcedEntity TWithComments <|.. SourcedEntity TNamedEntity <|.. TNamespace TSourceEntity <|.. TNamespace TEntityMetaLevelDependency <|.. TNamespace TWithStatements <|.. ScriptEntity TDefinedInModule <|.. Namespace TImportable <|.. Namespace TNamespace <|.. Namespace TAssociation <|.. TInheritance THasSignature <|.. TMethod TEntityCreator <|.. FamixTypeScriptModel THasSignature <|.. TFunction TInvocable <|.. TFunction TNamedEntity <|.. TFunction TTypedEntity <|.. TFunction TWithLocalVariables <|.. TFunction TWithParameters <|.. TFunction TWithStatements <|.. TFunction TEntityMetaLevelDependency <|.. TFunction TEnum <|.. Enum TImportable <|.. Enum TInvocable <|.. TMethod TMethodMetrics <|.. TMethod TNamedEntity <|.. TMethod TTypedEntity <|.. TMethod TWithImplicitVariables <|.. TMethod TWithLocalVariables <|.. TMethod TWithParameters <|.. TMethod TWithStatements <|.. TMethod TEntityMetaLevelDependency <|.. TMethod TInheritance <|.. Inheritance THasImmediateSource <|.. SourceTextAnchor TCanBeAbstract <|.. Method TCanBeClassSide <|.. Method TConcretization <|.. Concretization THasKind <|.. Method THasVisibility <|.. Method TImportable <|.. Method TMethod <|.. Method TAttribute <|.. Property TWithClasses <|.. ContainerEntity TWithFunctions <|.. ContainerEntity TWithLocalVariables <|.. ContainerEntity TWithInterfaces <|.. ContainerEntity TCanBeClassSide <|.. Property THasVisibility <|.. Property TDefinedInModule <|.. Function TFunction <|.. Function TSourceLanguage <|.. SourceLanguage TImportable <|.. Function TInvocable <|.. Function TImport <|.. ImportClause TStructuralEntity <|.. TParameter TConcreteParameterType <|.. Type THasSignature <|.. Invocation TInvocation <|.. Invocation TAccessible <|.. TStructuralEntity TNamedEntity <|.. TStructuralEntity TSourceEntity <|.. TStructuralEntity TTypedEntity <|.. TStructuralEntity TEntityMetaLevelDependency <|.. TStructuralEntity TFileSystemEntity <|.. TFile TImportable <|.. Type TType <|.. Type TFolder <|.. Folder TEntityMetaLevelDependency <|.. TComment TAssociation <|.. TParameterConcretization TImportable <|.. Alias TParameterConcretization <|.. ParameterConcretization TSourceEntity <|.. TWithStatements TWithAccesses <|.. TWithStatements TWithInvocations <|.. TWithStatements TWithReferences <|.. TWithStatements TType <|.. TEnum TWithEnumValues <|.. TEnum TSourceAnchor <|.. THasImmediateSource TWithMethods <|.. Type TImportable <|.. NamedEntity TInvocationsReceiver <|.. NamedEntity TNamedEntity <|.. NamedEntity TEntityMetaLevelDependency <|.. NamedEntity TType <|.. TGenericParameterType TDefinedInModule <|.. ArrowFunction TParametricEntity <|.. ParametricInterface TFunction <|.. ArrowFunction TAssociation <|.. TImport TImportable <|.. ArrowFunction TInvocable <|.. ArrowFunction TWithTypes <|.. TWithClasses TWithTypes <|.. TWithInterfaces TComment <|.. Comment TType <|.. TConcreteParameterType TCanBeAbstract <|.. Class TCanImplement <|.. Class TClass <|.. Class TClassMetrics <|.. Class TImportable <|.. Class TLCOMMetrics <|.. Class TWithAccesses <|.. Class TWithInvocations <|.. Class TClassMetrics <|.. Class TAssociation <|.. TConcretization TImplementation <|.. Implementation TAssociation <|.. TImplementation TStructuralEntity <|.. TEnumValue TStructuralEntity <|.. TAttribute TInvocationsReceiver <|.. TClass TType <|.. TClass TWithAttributes <|.. TClass TWithComments <|.. TClass TWithInheritances <|.. TClass TWithMethods <|.. TClass TParametricEntity <|.. ParametricArrowFunction TReference <|.. Reference TPrimitiveType <|.. PrimitiveType TParameterConcretization "generics*" -- "concreteParameter" TConcreteParameterType TImplementable "interface" -- "implementations*" TImplementation TWithInvocations "sender" -- "outgoingInvocations*" TInvocation TParametricEntity "genericEntity" -- "concretizations*" TConcretization TComment "comments*" --o "commentedEntity" TWithComments TMethod "methods*" --o "parentType" TWithMethods TWithFunctions "functionOwner" o-- "functions*" TFunction Decorator "decorators*" -- "decoratedEntity" NamedEntity Model -- "sourceLanguage" TSourceLanguage TImportable "importedEntity" -- "incomingImports*" TImport TType "declaredType" -- "typedEntities*" TTypedEntity TGenericParameterType "genericParameter" -- "concretizations*" TParameterConcretization TInheritance "subInheritances*" -- "superclass" TWithInheritances TInheritance "superInheritances*" -- "subclass" TWithInheritances TType "types*" --o "typeContainer" TWithTypes TWithAttributes "parentType" o-- "attributes*" TAttribute TParametricEntity "concreteEntity" -- "genericization" TConcretization TParameterConcretization "parameterConcretizations*" -- "concretizations*" TConcretization TImport "outgoingImports*" -- "importingEntity" TWithImports TInvocable "candidates*" -- "incomingInvocations*" TInvocation TLocalVariable "localVariables*" --o "parentBehaviouralEntity" TWithLocalVariables TInvocation "receivingInvocations*" -- "receiver" TInvocationsReceiver TAccess "accesses*" -- "accessor" TWithAccesses TGenericParameterType "genericParameters*" -- "genericEntities*" TParametricEntity TParametricEntity "concreteEntities*" -- "concreteParameters*" TConcreteParameterType TSourceEntity "element" -- "sourceAnchor" TSourceAnchor TCanImplement "implementingClass" -- "interfaceImplementations*" TImplementation @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript-traits.svg b/doc-uml/FamixTypeScript-traits.svg index 58efe2c..1b403b2 100644 --- a/doc-uml/FamixTypeScript-traits.svg +++ b/doc-uml/FamixTypeScript-traits.svg @@ -1 +1 @@ -EnumValue«External»TImport«External»TGenericParameterType«External»TCanImplementConcretization«External»TMethodIndexedFileAnchorFolder«External»TWithFunctions«External»TCommentString contentScriptEntityimplicitVariableDecoratorString expression«External»TSourceAnchorNumber lineCountParameterTypeBehaviouralEntity«External»TParametricEntityNamespaceClass«External»TInvocableInterface«External»TWithCommentsBoolean hasCommentsNumber numberOfCommentsParametricFunction«External»TWithLocalVariables«External»TWithAttributesNumber numberOfAttributesParameterConcretization«External»TTypedEntity«External»THasSignatureString signature«External»TLocalVariable«External»TInvocationArrowFunctionCommentBoolean isJSDocPropertyBoolean isOptionalBoolean isJavaScriptPrivateBoolean readOnlyBoolean isDefinitelyAssignedParametricClassAccessor«External»TEnumValue«External»TStructuralEntity«External»THasKindBoolean isConstantBoolean isGetterBoolean isSetterBoolean isConstructorString kind«External»TWithStatementsNumber numberOfStatements«External»TConcreteParameterTypeSourceLanguage«External»TWithTypesInvocation«External»EntityNumber numberOfTagsBoolean isTaggedBoolean isDeadTClassMetricsNumber numberOfLocallyDefinedMethodsNumber totalNumberOfSubclassesNumber numberOfAttributesInheritedNumber numberOfMethodsInheritedNumber numberOfMethodsOverriddenNumber numberOfMethodsInHierarchyParametricMethod«External»TClassBoolean isTestCaseNumber weightOfAClass«External»TTypeEnumModule«External»THasVisibilityBoolean isPackageVisibilityBoolean isPrivateBoolean isPublicString visibilityBoolean isProtected«External»TWithClassesNumber numberOfClassesAlias«External»TSourceLanguageFunction«External»TFolderNumber numberOfEmptyLinesOfTextNumber numberOfFoldersNumber totalNumberOfLinesOfTextNumber numberOfFiles«External»TParameterVariableParametricInterfaceTEntityCreator«External»TImplementableFamixTypeScriptModelSourceTextAnchorInheritanceImplementationParametricArrowFunction«External»TImportable«External»TFileNumber averageNumberOfCharactersPerLineNumber numberOfBytesNumber numberOfCharactersNumber numberOfKiloBytesNumber totalNumberOfLinesOfTextNumber numberOfEmptyLinesOfText«External»TParameterConcretizationNamedEntityContainerEntityPrimitiveTypeReference«External»TDefinedInModuleScopingEntityImportClause«External»THasImmediateSourceString sourceTWithInterfacesType«External»TImplementationMethodAccess«External»ModelNumber numberOfModelClassesNumber numberOfLinesOfCodePerMethodNumber numberOfModelMethodsNumber numberOfClassesPerPackageNumber numberOfLinesOfCodeNumber averageCyclomaticComplexityNumber numberOfMethodsNumber numberOfClassesNumber numberOfLinesOfCodePerPackageNumber numberOfLinesOfCodePerClassNumber numberOfClassesPerPackage«External»TConcretizationStructuralEntity«External»TEnum«External»TWithMethodsNumber weightedMethodCountNumber numberOfAbstractMethodsNumber numberOfMethodsNumber tightClassCohesion«External»TWithInheritancesNumber hierarchyNestingLevelNumber numberOfDirectSubclassesNumber numberOfSubclassesNumber subclassHierarchyDepth«External»TAttributeNumber hierarchyNestingLevel«External»TWithInvocationsNumber numberOfOutgoingInvocationsSourcedEntity«External»TIndexedFileNavigationNumber endPosNumber startPosSourceAnchor«External»TEntityMetaLevelDependencyNumber numberOfExternalClientsNumber numberOfChildrenNumber fanOutNumber fanInNumber numberOfInternalProvidersNumber numberOfInternalClientsNumber numberOfExternalProvidersNumber numberOfDeadChildrenBoolean isDeadBoolean isRoot«External»TFunction«External»TWithImports«External»TSourceEntityBoolean containsReplicasNumber numberOfLinesOfCodeWithMoreThanOneCharacterString sourceTextBoolean isStubNumber duplicationRateNumber numberOfLinesOfCodeFileParameter«External»TPrimitiveType«External»TNamedEntityString nameJSDoc«External»TInvocationsReceiver«External»TNamespace«External»TInheritance«External»TCanBeClassSideBoolean isClassSide«External»TLCOMMetricsNumber lcom3Number lcom2«External»TAccessBoolean isReadWriteUnknownBoolean isWriteBoolean isRead«External»TCanBeAbstractBoolean isAbstract«External»TWithAccessesAbstractGroupObjectTAssociationTMethodMetricsTWithImplicitVariablesTWithParametersTAccessibleTWithReferencesTReferenceableTFileSystemEntityTWithEnumValuesTFileAnchordecorators*decoratedEntityimplementingClassinterfaceImplementations*candidates*incomingInvocations*parentTypeattributes*concreteEntitygenericizationgenericEntityconcretizations*sourceAnchorelementoutgoingInvocations*sendercomments*commentedEntitysuperclasssubInheritances*subclasssuperInheritances*genericParameters*genericEntities*methods*parentTypefunctionOwnerfunctions*typedEntities*declaredTypeconcreteParametergenerics*concreteEntities*concreteParameters*receivingInvocations*receiveraccesses*accessorinterfaceimplementations*incomingImports*importedEntityparameterConcretizations*concretizations*parentBehaviouralEntitylocalVariables*outgoingImports*importingEntitytypeContainertypes*sourceLanguagegenericParameterconcretizations* \ No newline at end of file +EnumValueAccess«External»TCanBeAbstractBoolean isAbstractTClassMetricsNumber numberOfMethodsInHierarchyNumber numberOfMethodsInheritedNumber numberOfAttributesInheritedNumber totalNumberOfSubclassesNumber numberOfMethodsOverriddenNumber numberOfLocallyDefinedMethodsParametricClassParameterDecoratorString expressionVariable«External»TInvocableEntityBoolean isDeadBoolean isTaggedNumber numberOfTags«External»TImplementableTEntityCreator«External»TIndexedFileNavigationNumber startPosNumber endPosStructuralEntityimplicitVariable«External»TWithInvocationsNumber numberOfOutgoingInvocations«External»TEntityMetaLevelDependencyNumber fanInNumber numberOfDeadChildrenNumber numberOfChildrenNumber numberOfExternalClientsNumber numberOfInternalClientsNumber numberOfExternalProvidersBoolean isRootNumber fanOutBoolean isDeadNumber numberOfInternalProvidersScopingEntityAccessor«External»TPrimitiveType«External»TLocalVariable«External»TImportable«External»TTypeInterface«External»TWithFunctionsParameterTypeFileIndexedFileAnchorSourceAnchorModule«External»TFolderNumber numberOfEmptyLinesOfTextNumber numberOfFilesNumber totalNumberOfLinesOfTextNumber numberOfFolders«External»TSourceEntityNumber duplicationRateString sourceTextBoolean isStubBoolean containsReplicasNumber numberOfLinesOfCodeWithMoreThanOneCharacterNumber numberOfLinesOfCode«External»TNamedEntityString nameParametricFunction«External»TInvocation«External»TReferenceParametricMethod«External»TAccessBoolean isWriteBoolean isReadBoolean isReadWriteUnknownSourcedEntity«External»TNamespaceNamespaceScriptEntity«External»TInheritance«External»TMethodFamixTypeScriptModel«External»TFunction«External»TSourceLanguageTypeNamedEntity«External»TParameter«External»TDefinedInModuleEnumFunctionInheritanceSourceTextAnchorMethodConcretizationPropertyBoolean isJavaScriptPrivateBoolean isOptionalBoolean isDefinitelyAssignedBoolean readOnly«External»TWithAccessesContainerEntity«External»TWithInheritancesNumber hierarchyNestingLevelNumber numberOfDirectSubclassesNumber numberOfSubclassesNumber subclassHierarchyDepth«External»TLCOMMetricsNumber lcom3Number lcom2SourceLanguageImportClauseInvocation«External»ModelNumber numberOfClassesPerPackageNumber numberOfLinesOfCodePerClassNumber numberOfClassesNumber averageCyclomaticComplexityNumber numberOfLinesOfCodeNumber numberOfLinesOfCodePerMethodNumber numberOfModelClassesNumber numberOfClassesPerPackageNumber numberOfModelMethodsNumber numberOfLinesOfCodePerPackageNumber numberOfMethods«External»TWithAttributesNumber numberOfAttributes«External»THasVisibilityBoolean isPublicBoolean isProtectedString visibilityBoolean isPrivateBoolean isPackageVisibility«External»TStructuralEntity«External»TGenericParameterType«External»TFileNumber totalNumberOfLinesOfTextNumber numberOfEmptyLinesOfTextNumber numberOfBytesNumber numberOfKiloBytesNumber averageNumberOfCharactersPerLineNumber numberOfCharactersFolder«External»TCommentString content«External»TEnum«External»THasKindString kindBoolean isSetterBoolean isConstructorBoolean isGetterBoolean isConstantAliasJSDoc«External»TParametricEntityParameterConcretization«External»TWithStatementsNumber numberOfStatements«External»THasImmediateSourceString source«External»TParameterConcretizationArrowFunction«External»TWithClassesNumber numberOfClassesParametricInterface«External»TImport«External»TTypedEntityTWithInterfacesCommentBoolean isJSDoc«External»TConcreteParameterType«External»TWithMethodsNumber tightClassCohesionNumber numberOfMethodsNumber weightedMethodCountNumber numberOfAbstractMethodsClass«External»THasSignatureString signature«External»TConcretizationBehaviouralEntity«External»TCanImplementImplementation«External»TCanBeClassSideBoolean isClassSide«External»TImplementation«External»TWithImports«External»TClassNumber weightOfAClassBoolean isTestCase«External»TAttributeNumber hierarchyNestingLevel«External»TEnumValue«External»TSourceAnchorNumber lineCountParametricArrowFunctionReference«External»TWithCommentsBoolean hasCommentsNumber numberOfCommentsPrimitiveType«External»TInvocationsReceiver«External»TWithLocalVariables«External»TWithTypesObjectAbstractGroupTFileAnchorTReferenceableTFileSystemEntityTAssociationTWithParametersTMethodMetricsTWithImplicitVariablesTAccessibleTWithReferencesTWithEnumValuesdecorators*decoratedEntitygenerics*concreteParameterinterfaceimplementations*senderoutgoingInvocations*genericEntityconcretizations*concreteEntitygenericizationcomments*commentedEntitymethods*parentTypefunctionOwnerfunctions*sourceLanguageimportedEntityincomingImports*declaredTypetypedEntities*genericParameterconcretizations*subInheritances*superclasssuperInheritances*subclasstypes*typeContainerparentTypeattributes*parameterConcretizations*concretizations*outgoingImports*importingEntitycandidates*incomingInvocations*localVariables*parentBehaviouralEntityreceivingInvocations*receiveraccesses*accessorgenericParameters*genericEntities*concreteEntities*concreteParameters*elementsourceAnchorimplementingClassinterfaceImplementations* \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.puml b/doc-uml/FamixTypeScript.puml index 6be9d69..b7abe14 100644 --- a/doc-uml/FamixTypeScript.puml +++ b/doc-uml/FamixTypeScript.puml @@ -1 +1 @@ -@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class ScriptEntity <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class TWithInterfaces <<(T,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class ContainerEntity <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Variable <<(C,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class Class <<(C,white)>> #CCFFFF { } class Inheritance <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isJavaScriptPrivate Boolean isDefinitelyAssigned Boolean isOptional Boolean readOnly } class Interface <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class ParameterConcretization <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } Type <|-- PrimitiveType Type <|-- ParameterType ScopingEntity <|-- ScriptEntity NamedEntity <|-- File SourceAnchor <|-- SourceTextAnchor Entity <|-- SourcedEntity ContainerEntity <|-- ScopingEntity Type <|-- Enum Entity <|-- SourceLanguage NamedEntity <|-- Decorator NamedEntity <|-- ContainerEntity BehaviouralEntity <|-- ArrowFunction Entity <|-- ImportClause SourceAnchor <|-- IndexedFileAnchor Variable <|-- implicitVariable SourcedEntity <|-- Comment StructuralEntity <|-- Variable Entity <|-- Concretization NamedEntity <|-- StructuralEntity Entity <|-- Access NamedEntity <|-- Alias ContainerEntity <|-- BehaviouralEntity Entity <|-- Implementation Type <|-- Class BehaviouralEntity <|-- Function Entity <|-- Inheritance Class <|-- ParametricClass Entity <|-- Invocation Interface <|-- ParametricInterface ScopingEntity <|-- Namespace SourcedEntity <|-- JSDoc NamedEntity <|-- Folder Method <|-- Accessor Function <|-- ParametricFunction StructuralEntity <|-- Property Type <|-- Interface SourcedEntity <|-- NamedEntity ArrowFunction <|-- ParametricArrowFunction ContainerEntity <|-- Type Entity <|-- ParameterConcretization Entity <|-- Reference Method <|-- ParametricMethod ScriptEntity <|-- Module BehaviouralEntity <|-- Method StructuralEntity <|-- EnumValue Entity <|-- SourceAnchor StructuralEntity <|-- Parameter TWithInterfaces <|.. ContainerEntity TEntityCreator <|.. FamixTypeScriptModel TClassMetrics <|.. Class Decorator "decorators*" -- "decoratedEntity" NamedEntity @enduml \ No newline at end of file +@startuml hide empty members skinparam class { BackgroundColor white ArrowColor black BorderColor darkGray } class TWithInterfaces <<(T,white)>> #CCFFFF { } class Concretization <<(C,white)>> #CCFFFF { } class Module <<(C,white)>> #CCFFFF { } class FamixTypeScriptModel <<(C,white)>> #CCFFFF { } class Implementation <<(C,white)>> #CCFFFF { } class Interface <<(C,white)>> #CCFFFF { } class ParameterType <<(C,white)>> #CCFFFF { } class TClassMetrics <<(T,white)>> #CCFFFF { } class IndexedFileAnchor <<(C,white)>> #CCFFFF { } class SourceTextAnchor <<(C,white)>> #CCFFFF { } class PrimitiveType <<(C,white)>> #CCFFFF { } class Access <<(C,white)>> #CCFFFF { } class StructuralEntity <<(C,white)>> #CCFFFF { } class NamedEntity <<(C,white)>> #CCFFFF { } class Parameter <<(C,white)>> #CCFFFF { } class implicitVariable <<(C,white)>> #CCFFFF { } class Method <<(C,white)>> #CCFFFF { } class File <<(C,white)>> #CCFFFF { } class Entity <<(C,white)>> #CCFFFF { } class ScriptEntity <<(C,white)>> #CCFFFF { } class Reference <<(C,white)>> #CCFFFF { } class ContainerEntity <<(C,white)>> #CCFFFF { } class Enum <<(C,white)>> #CCFFFF { } class Accessor <<(C,white)>> #CCFFFF { } class ParametricArrowFunction <<(C,white)>> #CCFFFF { } class TEntityCreator <<(T,white)>> #CCFFFF { } class ParametricInterface <<(C,white)>> #CCFFFF { } class Type <<(C,white)>> #CCFFFF { } class Alias <<(C,white)>> #CCFFFF { } class ParametricClass <<(C,white)>> #CCFFFF { } class ParametricMethod <<(C,white)>> #CCFFFF { } class Decorator <<(C,white)>> #CCFFFF { String expression } class ParameterConcretization <<(C,white)>> #CCFFFF { } class SourceAnchor <<(C,white)>> #CCFFFF { } class BehaviouralEntity <<(C,white)>> #CCFFFF { } class Variable <<(C,white)>> #CCFFFF { } class Folder <<(C,white)>> #CCFFFF { } class Property <<(C,white)>> #CCFFFF { Boolean isDefinitelyAssigned Boolean isOptional Boolean readOnly Boolean isJavaScriptPrivate } class Inheritance <<(C,white)>> #CCFFFF { } class Comment <<(C,white)>> #CCFFFF { Boolean isJSDoc } class Class <<(C,white)>> #CCFFFF { } class SourceLanguage <<(C,white)>> #CCFFFF { } class ScopingEntity <<(C,white)>> #CCFFFF { } class ArrowFunction <<(C,white)>> #CCFFFF { } class JSDoc <<(C,white)>> #CCFFFF { } class EnumValue <<(C,white)>> #CCFFFF { } class SourcedEntity <<(C,white)>> #CCFFFF { } class Function <<(C,white)>> #CCFFFF { } class Invocation <<(C,white)>> #CCFFFF { } class ParametricFunction <<(C,white)>> #CCFFFF { } class ImportClause <<(C,white)>> #CCFFFF { } class Namespace <<(C,white)>> #CCFFFF { } Entity <|-- Concretization ScriptEntity <|-- Module Type <|-- Interface Entity <|-- Implementation Type <|-- ParameterType SourceAnchor <|-- IndexedFileAnchor SourceAnchor <|-- SourceTextAnchor Type <|-- PrimitiveType Entity <|-- Access NamedEntity <|-- StructuralEntity SourcedEntity <|-- NamedEntity StructuralEntity <|-- Parameter NamedEntity <|-- File ScopingEntity <|-- ScriptEntity Variable <|-- implicitVariable Entity <|-- Reference NamedEntity <|-- ContainerEntity Type <|-- Enum BehaviouralEntity <|-- Method Method <|-- Accessor ArrowFunction <|-- ParametricArrowFunction Interface <|-- ParametricInterface NamedEntity <|-- Alias ContainerEntity <|-- Type Class <|-- ParametricClass Method <|-- ParametricMethod Entity <|-- ParameterConcretization NamedEntity <|-- Decorator ContainerEntity <|-- BehaviouralEntity Entity <|-- SourceAnchor StructuralEntity <|-- Variable NamedEntity <|-- Folder StructuralEntity <|-- Property Entity <|-- Inheritance SourcedEntity <|-- Comment Type <|-- Class Entity <|-- SourceLanguage ContainerEntity <|-- ScopingEntity BehaviouralEntity <|-- ArrowFunction SourcedEntity <|-- JSDoc BehaviouralEntity <|-- Function StructuralEntity <|-- EnumValue Entity <|-- SourcedEntity Function <|-- ParametricFunction Entity <|-- Invocation Entity <|-- ImportClause ScopingEntity <|-- Namespace TEntityCreator <|.. FamixTypeScriptModel TWithInterfaces <|.. ContainerEntity TClassMetrics <|.. Class NamedEntity "decoratedEntity" -- "decorators*" Decorator @enduml \ No newline at end of file diff --git a/doc-uml/FamixTypeScript.svg b/doc-uml/FamixTypeScript.svg index 6991a23..0b7e2d8 100644 --- a/doc-uml/FamixTypeScript.svg +++ b/doc-uml/FamixTypeScript.svg @@ -1 +1 @@ -ScriptEntityFileTWithInterfacesSourceTextAnchorScopingEntitySourcedEntityEnumSourceLanguageDecoratorString expressionContainerEntityArrowFunctionImportClauseimplicitVariableCommentBoolean isJSDocVariableIndexedFileAnchorConcretizationEntityStructuralEntityAccessAliasFamixTypeScriptModelTClassMetricsBehaviouralEntityImplementationClassInheritanceFunctionParametricClassInvocationParametricInterfaceNamespaceJSDocParametricFunctionAccessorFolderTEntityCreatorPropertyBoolean isJavaScriptPrivateBoolean isDefinitelyAssignedBoolean isOptionalBoolean readOnlyInterfaceNamedEntityParametricArrowFunctionParameterConcretizationTypeReferenceParametricMethodModuleEnumValueMethodSourceAnchorParameterPrimitiveTypeParameterTypedecorators*decoratedEntity \ No newline at end of file +TWithInterfacesConcretizationModuleFamixTypeScriptModelImplementationInterfaceParameterTypeTClassMetricsIndexedFileAnchorSourceTextAnchorPrimitiveTypeAccessStructuralEntityNamedEntityParameterimplicitVariableMethodFileEntityScriptEntityReferenceContainerEntityEnumAccessorParametricArrowFunctionTEntityCreatorParametricInterfaceTypeAliasParametricClassParametricMethodDecoratorString expressionParameterConcretizationSourceAnchorBehaviouralEntityVariableFolderPropertyBoolean isDefinitelyAssignedBoolean isOptionalBoolean readOnlyBoolean isJavaScriptPrivateInheritanceCommentBoolean isJSDocClassSourceLanguageScopingEntityArrowFunctionJSDocEnumValueSourcedEntityFunctionInvocationParametricFunctionImportClauseNamespacedecoratedEntitydecorators* \ No newline at end of file diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptEntity.class.st b/src/Famix-TypeScript-Entities/FamixTypeScriptEntity.class.st index d54f312..9d17ef6 100644 --- a/src/Famix-TypeScript-Entities/FamixTypeScriptEntity.class.st +++ b/src/Famix-TypeScript-Entities/FamixTypeScriptEntity.class.st @@ -154,6 +154,13 @@ FamixTypeScriptEntity >> isQueryable [ ^ false ] +{ #category : #testing } +FamixTypeScriptEntity >> isReference [ + + + ^ false +] + { #category : #testing } FamixTypeScriptEntity >> isStructuralEntity [ diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptImportingContext.class.st b/src/Famix-TypeScript-Entities/FamixTypeScriptImportingContext.class.st index 96e9096..dfda18d 100644 --- a/src/Famix-TypeScript-Entities/FamixTypeScriptImportingContext.class.st +++ b/src/Famix-TypeScript-Entities/FamixTypeScriptImportingContext.class.st @@ -264,7 +264,7 @@ FamixTypeScriptImportingContext >> importProperty [ FamixTypeScriptImportingContext >> importReference [ - ^ self importConcreteEntity: (self class fm3ClassNamed: #Reference) + ^ self importAssociation: (self class fm3ClassNamed: #Reference) ] { #category : #importing } diff --git a/src/Famix-TypeScript-Entities/FamixTypeScriptReference.class.st b/src/Famix-TypeScript-Entities/FamixTypeScriptReference.class.st index 390fbcc..a92f410 100644 --- a/src/Famix-TypeScript-Entities/FamixTypeScriptReference.class.st +++ b/src/Famix-TypeScript-Entities/FamixTypeScriptReference.class.st @@ -1,6 +1,38 @@ +" +## Relations +====================== + +### Association source +| Relation | Origin | Opposite | Type | Comment | +|---| +| `referencer` | `FamixTReference` | `outgoingReferences` | `FamixTWithReferences` | Source entity making the reference. from-side of the association| + +### Association target +| Relation | Origin | Opposite | Type | Comment | +|---| +| `referredType` | `FamixTReference` | `incomingReferences` | `FamixTReferenceable` | Target entity referenced. to-side of the association| + +### Other +| Relation | Origin | Opposite | Type | Comment | +|---| +| `next` | `FamixTAssociation` | `previous` | `FamixTAssociation` | Next association in an ordered collection of associations. Currently not supported by the Moose importer| +| `previous` | `FamixTAssociation` | `next` | `FamixTAssociation` | Previous association in an ordered collection of associations. Currently not supported by the Moose importer| +| `sourceAnchor` | `FamixTSourceEntity` | `element` | `FamixTSourceAnchor` | SourceAnchor entity linking to the original source code for this entity| + + +## Properties +====================== + +| Name | Type | Default value | Comment | +|---| +| `isStub` | `Boolean` | false | Flag true if the entity attributes are incomplete, either because the entity is missing or not imported.| + +" Class { #name : #FamixTypeScriptReference, #superclass : #FamixTypeScriptEntity, + #traits : 'FamixTReference', + #classTraits : 'FamixTReference classTrait', #category : #'Famix-TypeScript-Entities-Entities' } diff --git a/src/Famix-TypeScript-Extensions/FamixTSourceLanguage.extension.st b/src/Famix-TypeScript-Extensions/FamixTSourceLanguage.extension.st new file mode 100644 index 0000000..d35a0b9 --- /dev/null +++ b/src/Famix-TypeScript-Extensions/FamixTSourceLanguage.extension.st @@ -0,0 +1,6 @@ +Extension { #name : #FamixTSourceLanguage } + +{ #category : #'*Famix-TypeScript-Extensions' } +FamixTSourceLanguage >> isTypeScript [ + ^ false +] diff --git a/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st b/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st deleted file mode 100644 index 8a7b66a..0000000 --- a/src/Famix-TypeScript-Generator/FamixTWithSourceLanguages.extension.st +++ /dev/null @@ -1,8 +0,0 @@ -Extension { #name : #FamixTWithSourceLanguages } - -{ #category : #'*Famix-TypeScript-Generator' } -FamixTWithSourceLanguages >> formattedSourceText [ - ^ self sourceLanguage - ifNotNil: [ :language | language format: self sourceText from: self ] - ifNil: [ self sourceText ] -] diff --git a/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st b/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st index ed86b8e..e83d376 100644 --- a/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st +++ b/src/Famix-TypeScript-Generator/FamixTypeScriptGenerator.class.st @@ -376,6 +376,8 @@ FamixTypeScriptGenerator >> defineHierarchy [ primitiveType --|> type. primitiveType --|> #TPrimitiveType. + + reference --|> #TReference. sourcedEntity --|> #TWithComments.