2010-04-21 51 views
3

J'ai une base de code où les développeurs utilisent les annotations @author sur leurs définitions de classe. Existe-t-il un moyen pour moi de pouvoir compter par programme combien de classes sont créées par chaque développeur en utilisant ces annotations?Comptage des annotations Java @author par développeur

+0

Êtes-vous sûr que le @author sont des annotations, et non doclets (tags qui apparaissent dans le javadoc)? – barjak

+0

Bonne question. Maintenant que j'y pense, les deux scénarios peuvent se produire 1) @author dans le javadoc et 2) des annotations @author. Il semble que le scénario doclet arrive plus souvent. Est-ce que cela change la solution? – Eclatante

Répondre

4

En supposant qu'il est comment vous utilisez l'annotation

@Author("fred") 
public class MyClass {... 

Ensuite, voici une méthode qui le fera

public List<Class> getClassesWrittenBy(String name, List<Class> classList) { 
    List<Class> list = new LinkedList<Class>(); 
    for (Class clazz: classList) 
     if (clazz.isAnnotationPresent(Author.class)) { 
      Author author = clazz.getAnnotation(Author.class); 
      if (author.value().equals(name)) 
      list.add(clazz); 
     } 
    return (list); 
} 
+0

pourquoi LinkedList ?? – IAdapter

+0

Aucune raison. Pourrait (aurait) utilisé un ensemble. –

+0

La solution change-t-elle si des doclets sont utilisés? – Eclatante