Mercurial > hg > Members > kono > jpf-core
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(); + } + ***/ +}