Author: echatellier Date: 2013-07-19 17:23:57 +0200 (Fri, 19 Jul 2013) New Revision: 2583 Url: http://nuiton.org/projects/nuiton-utils/repository/revisions/2583 Log: Add doc about dynamic import Modified: trunk/nuiton-csv/src/site/apt/index.apt Modified: trunk/nuiton-csv/src/site/apt/index.apt =================================================================== --- trunk/nuiton-csv/src/site/apt/index.apt 2013-07-16 13:00:38 UTC (rev 2582) +++ trunk/nuiton-csv/src/site/apt/index.apt 2013-07-19 15:23:57 UTC (rev 2583) @@ -133,6 +133,44 @@ } -------------------------------------------------------------------------------- +* Controler les headers pour construire un modèle dynamque + +Il est possible, dans un ImportModel de ne définir le modèle qu'après lecture des +entetes du fichier csv. Cela permet par exemple: + - de ne pas rendre certains colonne absente obligatoire + - de gerer une casse différente de header + - d'avoir plusieurs nom différent pour le même header + +-------------------------------------------------------------------------------- + +MyImportModel extends AbstractImportModel<Entity> { + + public MyImportModel() { + super(';'); + } + + /** + * Cette methode sera appeler après lecture des headers et avant la validation des entetes + * par rapport au modèle. + */ + @Override + public void pushCsvHeaderNames(List<String> headerNames) { + super.pushCsvHeaderNames(headerNames); + + newMandatoryColumn("Column1"); + newMandatoryColumn("Column2"); + newMandatoryColumn("Column3"); + if (header.contains("Type") { + newMandatoryColumn("Type"); + } else { + // nom alternatif de Type = Ref + newMandatoryColumn("Ref", "Type"); + } + } +} + +-------------------------------------------------------------------------------- + * Exporter des données --------------------------------------------------------------------------------
participants (1)
-
echatellier@users.nuiton.org