J'ai plusieurs fichiers que j'ai créés en utilisant l'outil CodeGen fourni par JibX. Ces classes ont toutes le même nom racine et donc les classes générées ont toutes le même nom.Modification du nom des classes générées par JibX CodeGen
J'ai d'abord résolu ce problème en plaçant toutes ces classes générées dans leur propre package pour résoudre les collisions de noms. J'ai ensuite rencontré le problème de devoir déclarer le nom complet du paquet, ce qui est assez long, chaque fois que je voulais déclarer ou caster un nouvel objet.
Mon idée originale de gérer ceci était de créer une sous-classe vide avec un nom distinct qui étendait la classe auto-générée originale. Tels que
public class AutoGen
{
//This class generated by CodeGen binds as expected
//No problems marshalling or unmarshalling documents
}
public class UniqueName extends com.CompanyName.ProductName.SDK.Events.HeartBeatEvent.AutoGen
{
//This class is empty
}
Le problème que je suis en cours d'exécution en est maintenant que JiBX ne sera pas marshall ou des chaînes ou des fichiers unmarshall à cette sous-classe en raison de l'absence d'une liaison. Après avoir lu à nouveau la documentation de CodeGen, je n'arrive pas à trouver une commande qui me permettra de déclarer le nom de la classe générée. Est-il possible de faire en sorte que les classes générées par CodeGen aient des noms uniques déclarés par l'utilisateur? Si non, y at-il un moyen de faire de JibX marshall et unmarshall la sous-classe correctement? Chacune de ces solutions fonctionnera.
Il est également important que je mentionne que je ne peut pas modifier les fichiers xsd à partir de laquelle le code est généré.