Initial import
[jpf-core.git] / src / classes / gov / nasa / jpf / AnnotationProxyBase.java
1 /*
2  * Copyright (C) 2014, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
6  * The Java Pathfinder core (jpf-core) platform is licensed under the
7  * Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  * 
10  *        http://www.apache.org/licenses/LICENSE-2.0. 
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and 
16  * limitations under the License.
17  */
18
19 package gov.nasa.jpf;
20
21
22 /**
23  * common stuff used by all Annotation Proxies
24  */
25 public class AnnotationProxyBase {
26
27   public native Class<?> annotationType();
28   
29   // this is just here to be intercepted by the native peer
30   @Override
31   public native String toString();
32   
33   /***
34   public String toString() {
35     StringBuilder sb = new StringBuilder();
36     sb.append('@');
37     
38     Class<?> cls = getClass();
39     String clsName = cls.getName();
40     int idx = clsName.lastIndexOf('$');
41     sb.append(clsName.substring(0, idx));
42     
43     Field[] fields = cls.getDeclaredFields();  
44     if (fields.length > 0){
45       sb.append('(');
46       for (int i=0; i<fields.length; i++){
47         fields[i].setAccessible(true);
48         
49         if (i>0){
50           sb.append(',');
51         }
52         sb.append(fields[i].getName());
53         sb.append('=');
54         
55         try {
56           Object v = fields[i].get(this);
57           Class<?> vcls = v.getClass();
58
59           if (vcls.isArray()){
60             sb.append('[');
61             int n = Array.getLength(v);
62             for (int j=0; j<n; j++){
63               if (j>0){
64                 sb.append(',');
65               }
66               sb.append(Array.get(v,j));
67             }            
68             sb.append(']');
69           } else {
70             sb.append(fields[i].get(this));
71           }
72         } catch (IllegalAccessException iax){}
73       }
74       sb.append(')');
75     }
76     
77     return sb.toString();
78   }
79   ***/
80 }