Builtins Documentation

Ce répertoire contient la documentation de tous les namespaces et builtins disponibles dans Bidji.


Namespaces disponibles

bjmda - Bidji MDA

Fichier : bjmda.md

Description : Namespace pour accéder aux métadonnées des entités et propriétés Bidji (Model Driven Architecture).

Syntaxe :

${bjmda.name(entity)}
${bjmda.package(entity)}
[#foreach p in bjmda.properties(entity)]${p.name}: ${p.type}[/#foreach]
[#if bjmda.has_complex_types()]...[/#if]

Méthodes principales :

  • name(entity) - Nom de l’entité
  • package(entity) - Package (répertoire parent)
  • module(entity) - Module (répertoire grand-parent)
  • properties(entity) - Toutes les propriétés (clés sans @)
  • native_properties(entity) - Propriétés de types natifs
  • type_or_string(property) - Type ou ‘string’ par défaut
  • has_complex_types() - Modèle avec types complexes

Statut : ✅ Production-ready (v0.8+)


bjio - Bidji I/O

Fichier : bjio.md

Description : Namespace pour les opérations sur les fichiers et chemins.

Syntaxe :

${bjio.name(file)}
${bjio.base_name(file)}
${bjio.absolute_path(file)}
${bjio.relative_path(file)}

Méthodes :

  • name(file) - Nom du fichier
  • base_name(file) - Nom sans extension
  • absolute_path(file) - Chemin absolu
  • relative_path(file) - Chemin relatif
  • path(file, mode) - Chemin selon mode
  • dir_name(file) - Nom du répertoire
  • absolute_dir_path(file) - Chemin absolu du répertoire
  • relative_dir_path(file) - Chemin relatif du répertoire
  • dir_path(file, mode) - Chemin du répertoire selon mode

Statut : ✅ Production-ready (v0.8+)


Builtins dépréciés

file?api (DÉPRÉCIÉ)

⚠️ DÉPRÉCIÉ - Remplacé par bjio

Ancienne syntaxe :

${file?api.name()}           ❌ DÉPRÉCIÉ
${file?api.base_name()}      ❌ DÉPRÉCIÉ

Nouvelle syntaxe :

${bjio.name(file)}           ✅ UTILISEZ CECI
${bjio.base_name(file)}      ✅ UTILISEZ CECI

Migration : Voir bjio.md


Guide d’utilisation

1. Trouver la documentation

Chaque namespace a sa propre page de documentation dans ce répertoire.

2. Structure d’une page

Chaque page contient :

  • Vue d’ensemble
  • Liste des méthodes
  • Paramètres et types de retour
  • Exemples d’utilisation
  • Notes importantes
  • Guide de migration (si applicable)

3. Exemples

Tous les exemples sont testés et fonctionnels.

4. Tests

Des tests AntUnit et JUnit sont disponibles pour chaque namespace :

  • Tests AntUnit : test/build-builtin-*.xml
  • Tests JUnit : src/test/java/org/bidji/freemarker/builtin/*Test.java

Convention de nommage

Namespaces

Les namespaces suivent la convention bj* :

  • bjmda - Bidji MDA (entités, propriétés, métadonnées)
  • bjio - Bidji I/O (fichiers, chemins)
  • bjlines - (futur) Bidji Lines (manipulation de lignes)
  • bjutils - (futur) Bidji Utils (utilitaires généraux)

Méthodes

Les méthodes suivent la convention snake_case pour cohérence avec FreeMarker :

  • base_name() (pas baseName())
  • absolute_path() (pas absolutePath())

Contribution

Ajouter un nouveau builtin

  1. Créer la classe Java dans src/main/java/org/bidji/freemarker/builtin/
  2. Créer les tests dans src/test/java/org/bidji/freemarker/builtin/
  3. Créer les tests AntUnit dans test/build-builtin-*.xml
  4. Créer la documentation dans doc/builtins/*.md
  5. Mettre à jour ce README

Structure de documentation

# namespace - Description

**Version:** X.X
**Namespace:** `namespace`
**Type:** Type

## Table des Matières
...

## Vue d'ensemble
...

## Méthodes disponibles
...

## Exemples
...

## Notes importantes
...

## Tests
...

Ressources

Documentation générale

Code source

  • Classes : src/main/java/org/bidji/freemarker/builtin/
  • Tests Java : src/test/java/org/bidji/freemarker/builtin/
  • Tests AntUnit : test/build-builtin-*.xml

Outils

  • Script de recherche : find_builtin.sh
  • Script de migration bjio : Voir bjio.md
  • Script de migration bjmda : migrate_api_to_bjmda.sh

Dernière mise à jour : 2026-02-08