Java class context component

Ce tutorial permet de créer un XML component avec un modèle classe JAVA. Il permettra de générer le fichier XML du mapping Hibernate à partir de la classe Java UserBean généré précédemment. Le template utilisé dans ce tutorial attend un paramètre pojo de type class.

Vous pouvez trouver l'exemple ci dessous dans le catalogue usecases-catalog/Components/Model/XMLToJavaClass.akgncpt.xml.

Template

Voici le template freemarker qui permet de générer le fichier XML du mapping Hibernate :

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
    
<hibernate-mapping>

<class 
    name="net.sourceforge.akrogen.bean.UserBean" 
    table="T_USER"
>
<#list pojo.fields as f>
    <property
        name="${f.elementName}"
        type="${f.typeSignature?substring(1)}"
        column="${f.elementName}"
    />
</#list>
</class>
</hibernate-mapping>

pojo est une interface de type org.eclipse.jdt.core.IType qui permet de naviguer dans les méthodes de type org.eclipse.jdt.core.IMethod, et champs de type org.eclipse.jdt.core.IField de la classe Java UserBean.

XML component

Voici le XML component que nous allons utiliser :

<?xml version="1.0" encoding="UTF-8"?>
<component>
  <models>
    <!-- This component requires selection of Java class which is used into 
         Template context (Output) -->
    <model type="class" key="pojo" useIntoOutput="true" omitDocumentType="true" />
  </models>
  <input>
    <page title="Java class to XML" >
      <description>Transform Java Class persistent bean to a XML mapping hibernate.</description>
      <box flex="1" id="" orient="vertical"
              xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">                                                    
        <hbox>
          <label value="Output Base dir :" />
          <textbox id="outputBaseDir" flex="1" />
          <button type="folder" target="outputBaseDir" label="Browse..." />
        </hbox>
        <hbox>
          <label value="Output File name :" />
          <textbox id="outputFileName" flex="1" />
        </hbox> 
        <hbox>
          <button type="preview" label="Preview..." />
        </hbox>                 
      </box>                    
    </page>
  </input>
  <output>
    <file>
      <template uri="/ftl/JavaClass/JavaClassToXML.ftl" />
    </file>
  </output>
</component>

Créer le fichier XML component JavaClassToXML.akgncpt.xml dans le répertoire Components/Model/ du catalogue MyAkrogenCatalog.

Voici les explications de ce XML component :

model element

L'élement model d'un component permet de définir les modèles à utiliser dans le template (useIntoOutput="true"). (il peut est aussi utilisé pour gérér les Wizard page dynamiques XUL.

Dans notre cas, le modèle est un une classe java de type class type="class" qui doit etre passé au template sous la clé key="pojo".

XML component use

Rafraichissez la vue catalogue. JavaClassToXML doit apparaître dans le catalogue.

Double cliquer sur le component JavaClassToXML pour ouvrir le Wizard page. Le Wizard page suivant s'ouvre avant celui du XML component, car il requiert la sélection d'une classe Java.

Sélectionner la classe UserBean (en tappant Userbean).

Cliquer sur le bouton Next pour ouvrir le Wizard page XML component.