diff --git a/README.md b/README.md index 460150a..5f24319 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,36 @@ Metacello new load ``` +## Use + +Carrefour links entities in a FAST model to entities in a Famix model. +It is composed of 2 parts: +- Carrefour meta-model +- Binder + +Steps: +1. Generate the FAST model of a Famix entity (eg. a FamixMethod) +2. Bind the nodes in the FAST model to entities in the Famix model with method `#bindFASTModel` + +### Carrefour meta-model + +Does not do much, "import" entities from *language dependent* Famix meta-model and *language dependent* FAST meta-model and adds relations between them. + +### Generating the FAST model + +Done by a *language dependent* parser. +Each FamixEntity should know how to do it by implementing `#getFASTModel` + +### Binding + +Done by visiting the FAST model (an AST). +Again needs a *language dependent* visitor. + +For Java, there are 2 methods: +- `#bindFastModel:fromFamixMethodEntity:` that visit root *method* of the FAST model +- `#bindFastModel:fromFamixClassEntity:` that visit root *class* of the FAST model + + ## Developers ### Update tests