OSDN Git Service

update
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / BirthmarkElementClassNotFoundException.java
1 package jp.sourceforge.stigmata;
2
3 /*
4  * $Id$
5  */
6
7 import java.util.ArrayList;
8 import java.util.List;
9
10 /**
11  * Thrown if extracting birthmark is failed to find a class definition.
12  * 
13  * @author Haruaki TAMADA
14  * @version $Revision$ 
15  */
16 public class BirthmarkElementClassNotFoundException extends
17                BirthmarkExtractionFailedException {
18     private static final long serialVersionUID = 3256723476854L;
19
20     /**
21      * class name list, which names are failed to load.
22      */
23     private List<String> classnames = new ArrayList<String>();
24
25     /**
26      * 
27      */
28     public void addClassName(String name){
29        classnames.add(name);
30     }
31
32     @Override
33     public boolean isFailed(){
34        return super.isFailed() || classnames.size() > 0;
35     }
36
37     /**
38      * returns an array of class names which are failed loading.
39      */
40     public synchronized String[] getClassNames(){
41        return classnames.toArray(new String[classnames.size()]);
42     }
43
44     @Override
45     public String getMessage(){
46        StringBuffer sb = new StringBuffer();
47        boolean first = true;
48        for(String value: classnames){
49            if(!first){
50                sb.append(", ");
51            }
52            sb.append(value);
53        }
54        return new String(sb);
55     }
56 }