Récupération du package à partir du nom de la classe

Bonjour,

En travaillant sur l’amélioration de nos tests unitaires, j’aurais voulu savoir s’il existe une méthode pour récupérer le package d’une classe à partir de son nom. (je n’ai pas trouvé mon bonheur dans la Javadoc)

Le but serait de l’utiliser dans ce cadre :

@Override
public String unitTests() {
return new JUnitTool(getGrant()).run(“com.simplicite.tests.MyModule.MyServerTest”);
}

En résumé pouvoir récupérer “com.simplicite.tests.MyModule.MyServerTest” à partir de “MyServerTest”.

Merci d’avance,

Benoît

Bonjour,

Je ne crois pas que cela existe, dans la mesure où vous connaissez déjà le nom du module et de l’objet, le plus simple c’est :

String cls = Globals.DEFAULT_TESTS_PACKAGE + ".MyModule.MyServerTest";

Sinon, s’il faut récupérer le module de l’objet via son nom :

String moduleId = ObjectDB.getModuleIdByName("MyServerTest");
String moduleName = ModuleDB.getModuleName(moduleId);
String cls = Globals.DEFAULT_TESTS_PACKAGE + "." + moduleName + ".MyServerTest";
1 Like

@Francois existe t’il un équivalent à cette méthode, pour les “shared code” ?

Je viens de tester, et dans ce cas la méthode renvoie “null”.

Si MyServerTest est un code partagé, il faut plutôt récupérer sa définition :

SharedScript script = getGrant().getSharedScript("MyServerTest");
String moduleName = script.getModuleName();
1 Like

@Francois existe t’il une méthode pour récupérer le type : Object, ExternalObject, Shared code, etc ?

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.

Non getType(“anything”) n’existe pas.
Il y a plutôt des accesseurs par type au niveau Grant ou ObjectDB (getAction, getObject, getResource, getSharedScript, getAlert…).

1 Like