Exemple de classe Java™ complexe
Un exemple plus complexe est donné par la classe MainClass (Mainclass.java) :
public class MainClass
{
public boolean _booleanField;
public SubClass _SubClassField;
public String _StringField;
public MainClass(int intPar1)
{
_booleanField = intPar1 > 0 ? true : false;
_SubClassField = new SubClass((short)0);
}
public MainClass(int intPar1, SubClass SubClassPar2)
{
_booleanField = intPar1 > 0 ? true : false;
_SubClassField=SubClassPar2;
}
public int function1()
{
if (_SubClassField._byteArrayField == null)
return 0;
else
return _SubClassField._byteArrayField.length;
}
public SubClass function2(int intPar1)
{
SubClass returnValue = new SubClass(2);
for (int index = 0; index < 5; index++)
{
returnValue._byteArrayField[index] = (byte)intPar1;
}
return returnValue;
}
public char function2(short[] shortArrayPar1)
{
return 'A';
}
public void function3(int intPar1)
{
_StringField = "Value " + intPar1 + "was passed";
}
public byte[] function4(SubClass SubClassPar1, String StringPar2)
{
_StringField = StringPar2;
return SubClassPar1._byteArrayField;
}
}
Notez que cette classe possède une zone, un paramètre de constructeur et un paramètre de méthode de type Sous-classe.
Dans le schéma (install_dir\examples\adapters\javaclas\mainclass.mtt), les aspects suivants sont à noter :
- Il existe une zone de type Sous-classe, dont la valeur est une référence. Cet objet doit être créé dans une carte précédente et sa référence mappée à l’élément ref._SubClassField.
- Le constructeur de paramètre 2 a été sélectionné par l’utilisateur. Le second paramètre est de type Sous-classe (élément ref._P2_SubClass). Sa valeur est un élément de texte correspondant à la référence d’objet. Cet objet doit être créé dans une carte précédente et doit avoir reçu une valeur de référence qui est ensuite mappée dans cet élément.
- Les méthodes fonction1, fonction2et function3 ont été sélectionnées par l’utilisateur, function4 ne l’a pas été.
- Toutes les méthodes ont été sélectionnées par l’utilisateur pour être appelées par l’adaptateur.
- fonction1 n’a pas de paramètres. Etant donné qu’il est représenté en tant que groupe et que les groupes doivent avoir des composants, il possède un seul composant appelé #NullArgList. NONE doit être affecté à la mappe.
- Il est possible que deux méthodes portant le même nom (mais avec des listes de paramètres différentes) soient appelées dans la même carte. Pour ce faire, l’importateur remplacera les noms des groupes par des noms uniques en ajoutant .nn, où .nn est un nombre unique.
Par exemple, si nous voulons appeler deux méthodes différentes nommées function2, elles apparaîtront dans le schéma en tant que function2.1 et function2.2.