OSDN Git Service

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