2016-09-01 1 views
0

J'ai écrit la transformation du code source en utilisant la bibliothèque inria-spoon. J'ai la fonction suivante dans mon transformateur (qui veille à ce que ma fonction « processus » est invoquée que pour les classes souhaitées):Les fichiers non modifiés ont également été copiés dans le répertoire cible dans la transformation inria spoon

public boolean isToBeProcessed(CtInterface<?> ctClass) { 
     return isProcessible(ctClass); 
    } 

les classes Alors que souhaitées sont transformées. Mais il semble que toutes les classes sont copiées du répertoire source vers le répertoire cible. Je m'attends à ce que seules les classes transformées soient copiées dans le répertoire cible.

Existe-t-il une configuration ou une gestion pour inria-spoon?

Actuellement j'invoque mon transformateur par cas de test JUnit, en utilisant la fonction suivante:

public void testTransform() 
    { 
     final String[] arguments = { "-i", "E:/input", 
       "-o", "E:/output", "-p", 
       "com.transformer.ClassTransformer", 
       "-c"}; 

     final Launcher launcher = new Launcher(); 
     launcher.setArgs(arguments); 
     launcher.run(); 
    } 

Répondre

0

Option [(-f|--generate-files) <generate-files>], également disponible avec l'API, semble être ce que vous voulez.

+0

merci @ martin-monperrus .... mais cette option m'attend de fournir la liste des fichiers à modifier. Ça ne marchera pas pour moi. – sanjay

+0

vous pouvez également utiliser des caractères génériques –