diff src/classes/gov/nasa/jpf/AnnotationProxyBase.java @ 0:61d41facf527

initial v8 import (history reset)
author Peter Mehlitz <Peter.C.Mehlitz@nasa.gov>
date Fri, 23 Jan 2015 10:14:01 -0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/classes/gov/nasa/jpf/AnnotationProxyBase.java	Fri Jan 23 10:14:01 2015 -0800
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2014, United States Government, as represented by the
+ * Administrator of the National Aeronautics and Space Administration.
+ * All rights reserved.
+ *
+ * The Java Pathfinder core (jpf-core) platform is licensed under the
+ * Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ * 
+ *        http://www.apache.org/licenses/LICENSE-2.0. 
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and 
+ * limitations under the License.
+ */
+
+package gov.nasa.jpf;
+
+
+/**
+ * common stuff used by all Annotation Proxies
+ */
+public class AnnotationProxyBase {
+
+  public native Class<?> annotationType();
+  
+  // this is just here to be intercepted by the native peer
+  @Override
+  public native String toString();
+  
+  /***
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append('@');
+    
+    Class<?> cls = getClass();
+    String clsName = cls.getName();
+    int idx = clsName.lastIndexOf('$');
+    sb.append(clsName.substring(0, idx));
+    
+    Field[] fields = cls.getDeclaredFields();  
+    if (fields.length > 0){
+      sb.append('(');
+      for (int i=0; i<fields.length; i++){
+        fields[i].setAccessible(true);
+        
+        if (i>0){
+          sb.append(',');
+        }
+        sb.append(fields[i].getName());
+        sb.append('=');
+        
+        try {
+          Object v = fields[i].get(this);
+          Class<?> vcls = v.getClass();
+
+          if (vcls.isArray()){
+            sb.append('[');
+            int n = Array.getLength(v);
+            for (int j=0; j<n; j++){
+              if (j>0){
+                sb.append(',');
+              }
+              sb.append(Array.get(v,j));
+            }            
+            sb.append(']');
+          } else {
+            sb.append(fields[i].get(this));
+          }
+        } catch (IllegalAccessException iax){}
+      }
+      sb.append(')');
+    }
+    
+    return sb.toString();
+  }
+  ***/
+}