ClassInfoImpl.java 文件源码

java
阅读 36 收藏 0 点赞 0 评论 0

项目:cxf-plus 作者:
@SuppressWarnings("unchecked")
private void findFieldProperties(C c, XmlAccessType at) {

       // always find properties from the super class first
       C sc = nav().getSuperClass(c);
       if (shouldRecurseSuperClass(sc)) {
           findFieldProperties(sc,at);
       }

       for( F f : nav().getDeclaredFields(c) ) {
           Annotation[] annotations = reader().getAllFieldAnnotations(f,this);
           boolean isDummy = reader().hasFieldAnnotation(OverrideAnnotationOf.class, f);

           if( nav().isTransient(f) ) {
               // it's an error for transient field to have any binding annotation
               if(hasJAXBAnnotation(annotations))
                   builder.reportError(new IllegalAnnotationException(
                       Messages.TRANSIENT_FIELD_NOT_BINDABLE.format(nav().getFieldName(f)),
                           getSomeJAXBAnnotation(annotations)));
           } else
           if( nav().isStaticField(f) ) {
               // static fields are bound only when there's explicit annotation.
               if(hasJAXBAnnotation(annotations))
                   addProperty(createFieldSeed(f),annotations, false);
           } else {
               if(at==XmlAccessType.FIELD
               ||(at==XmlAccessType.PUBLIC_MEMBER && nav().isPublicField(f))
               || hasJAXBAnnotation(annotations)) {
                   if (isDummy) {
                       ClassInfo<T, C> top = getBaseClass();
                       while ((top != null) && (top.getProperty("content") == null)) {
                           top = top.getBaseClass();
                       }
                    DummyPropertyInfo prop = (DummyPropertyInfo) top.getProperty("content");
                       PropertySeed seed = createFieldSeed(f);
                       ((DummyPropertyInfo<T,C,F,M>)prop).addType(createReferenceProperty(seed));
                   } else {
                       addProperty(createFieldSeed(f), annotations, false);
                   }
               }
               checkFieldXmlLocation(f);
           }
       }
   }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号