Skip to content

Commit

Permalink
all images of predefined traits do work
Browse files Browse the repository at this point in the history
  • Loading branch information
badetitou committed May 27, 2024
1 parent 5b95845 commit c6c2da1
Showing 1 changed file with 194 additions and 7 deletions.
201 changes: 194 additions & 7 deletions moose-wiki/Developers/predefinedEntities.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,24 +60,211 @@ Using an association involves:
There are five full-fledged associations in FamixNG:

- `FamixTAccess`, from: `FamixTWithAccess`, to: `FamixTAccessible`
<details>![PlantUML Image](https://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/moosetechnology/moosetechnology.github.io/master/moose-wiki/Developers/Diagrams/access.puml&fmt=svg)</details>
<details>
```plantuml!
@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class TAccess << (T,lightGrey) >> {
Boolean isWrite
Boolean isRead
Boolean isReadWriteUnknown
}
class TAccessible << (T,lightGrey) >> {
Number numberOfAccessingMethods
Number numberOfAccesses
Number numberOfLocalAccesses
Number numberOfAccessingClasses
Number numberOfGlobalAccesses
}
class TWithAccesses << (T,lightGrey) >> {
}
TAccess " *incomingAccesses" -- "variable" TAccessible
TAccess " *accesses" -- "accessor" TWithAccesses
TAccessible -- " *accessors" TWithAccesses
@enduml
```
</details>

- `FamixTInheritance`, from: `FamixTWithInheritance`, to: `FamixTWithInheritance`
<details>![PlantUML Image](https://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/moosetechnology/moosetechnology.github.io/master/moose-wiki/Developers/Diagrams/inheritance.puml&fmt=svg)</details>
<details>
```plantuml!
@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class TInheritance << (T,lightGrey) >> {
}
class TWithInheritances << (T,lightGrey) >> {
Number totalNumberOfSubclasses
Number numberOfDirectSubclasses
Number subclassHierarchyDepth
Number numberOfSubclasses
Number hierarchyNestingLevel
}
TInheritance " *subInheritances" -- "superclass" TWithInheritances
TInheritance " *superInheritances" -- "subclass" TWithInheritances
@enduml
```
</details>
- `FamixTInvocation`, from: `FamixTWithInvocation`, to: `FamixTInvocable`, for OO programs, there is an extra receiver: `FamixTInvocationReceiver`
<details>![PlantUML Image](https://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/moosetechnology/moosetechnology.github.io/master/moose-wiki/Developers/Diagrams/invocation.puml&fmt=svg)</details>
<details>
```plantuml!
@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class TInvocation << (T,lightGrey) >> {
}
class TWithInvocations << (T,lightGrey) >> {
}
class TInvocable << (T,lightGrey) >> {
}
class TInvocationsReceiver << (T,lightGrey) >> {
}
TInvocation " *receivingInvocations" -- "receiver" TInvocationsReceiver
TInvocation " *outgoingInvocations" -- "sender" TWithInvocations
TInvocation " *incomingInvocations" -- " *candidates" TInvocable
@enduml
```
</details>
- `FamixTReference`, from: `FamixTWithReferences`, to: `FamixTReferenceable`
<details>![PlantUML Image](https://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/moosetechnology/moosetechnology.github.io/master/moose-wiki/Developers/Diagrams/reference.puml&fmt=svg)</details>
<details>
```plantuml!
@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class TReference << (T,lightGrey) >> {
}
class TWithReferences << (T,lightGrey) >> {
}
class TReferenceable << (T,lightGrey) >> {
}
TReference " *incomingReferences" -- "referredType" TReferenceable
TReference " *outgoingReferences" -- "referencer" TWithReferences
@enduml
```
</details>
- `FamixTTraitUsage`, from: `FamixTWithTrait`, to: `FamixTTrait`
<details>![PlantUML Image](https://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/moosetechnology/moosetechnology.github.io/master/moose-wiki/Developers/Diagrams/usetrait.puml&fmt=svg)</details>
<details>
```plantuml!
@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class TTraitUsage << (T,lightGrey) >> {
}
class TWithTraits << (T,lightGrey) >> {
}
class TTrait << (T,lightGrey) >> {
}
TTraitUsage " *incomingTraitUsages" -- "trait" TTrait
TTrait " *traits" -- "traitOwner" TWithTraits
@enduml
```
</details>

To these five we added two more specialized "associations":
`DereferencedInvocation` (call of a pointer to a function in C) and `FileInclude` (also in C).
These do not reify the association as a separate entity, but they might do so in the future.
For now there are only two traits to put at each end of the relationship:

- `FamixTDereferencedInvocation` and `FamixTWithDereferencedInvocations`
<details>![PlantUML Image](https://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/moosetechnology/moosetechnology.github.io/master/moose-wiki/Developers/Diagrams/derefInvok.puml&fmt=svg)</details>
- `FamixTFileInclude` and `FamixTWithFileInclude`<details>![PlantUML Image](https://www.plantuml.com/plantuml/proxy?cache=no&src=https://raw.githubusercontent.com/moosetechnology/moosetechnology.github.io/master/moose-wiki/Developers/Diagrams/fileInclude.puml&fmt=svg)</details>
<details>
```plantuml!
@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class TDereferencedInvocation << (T,lightGrey) >> {
}
class TWithDereferencedInvocations << (T,lightGrey) >> {
}
TDereferencedInvocation " *dereferencedInvocations" -- "referencer" TWithDereferencedInvocations
@enduml
```
</details>
- `FamixTFileInclude` and `FamixTWithFileInclude`
<details>
```plantuml!
@startuml
hide empty members
skinparam class {
BackgroundColor white
ArrowColor black
BorderColor darkGray
}
class TFileInclude << (T,lightGrey) >> {
}
class TWithFileIncludes << (T,lightGrey) >> {
}
TFileInclude " *outgoingIncludeRelations" -- "source" TWithFileIncludes
TFileInclude " *incomingIncludeRelations" -- "target" TWithFileIncludes
@enduml
```
</details>

### Technical Traits

Expand Down

0 comments on commit c6c2da1

Please sign in to comment.