Skip to content
This repository was archived by the owner on Apr 19, 2022. It is now read-only.

Niveau 2 #5

@lesaint

Description

@lesaint

talk

Avec un AP, on peut étendre le compilateur => faire de la validation

  • présentation de l'API Writer
  • comment utiliser Processor#getSupportedAnnotationTypes()
  • présentation de javax.lang.model.element.* et javax.lang.model.type.*
    • qu'est-ce qu'un Element ? qu'est-ce qu'un type ?
  • utilisation des visiteurs pour connaître les types réels
  • les exos de validation sont l'occasion d'utiliser compile-testing => le présenter rapidement

exercices

  • exo 1 : validation d'annotations, erreur de compilation déplacé du niveau 3
    • sujet : empêcher @Inject sur les propriétés
    • apprendre en récupérer les annotations "surveillées"
    • 1er contact avec l'API Element/Type + utilisation de Messager
  • exo 2 : et si vous affichiez la ligne à laquelle se trouve l'erreur ? déplacé au niveau 3
    • les paramètres des méthodes de Messager plus en détail
  • exo 3 : et si vous n'affichiez qu'un warning ? déplacé du niveau 3
    • que se passe-t-il ? (rien sous Maven -- je crois)
  • exo 4 : valider qu'une valeur d'un paramètre d'une annotation est unique par package
    • mise en avant de l'aspect statefull de l'AP et de son cycle de vie déjà couvert par la solution bourrin pour traiter le bégaiement du processor au niveau 1
  • exo 5 à Z : connaître l'API javax.lang.model
    • série de tests unitaires dont le code d'exploration de l'API est à écrire
    • sujets multiples, mais il s'agit de découvrir les visiteurs, les classes Elements, Types, ElementFilters, les visiteurs et comment les utiliser
    • le sujet étant vaste, certains exercices pourront être relégué au dernier niveau, pour les plus rapides et pour éviter que ce niveau ne dure trop longtemps

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions