Package net.sf.rej.java.attribute

Examples of net.sf.rej.java.attribute.SignatureAttribute


                ClassFile cf = cdr.getClassFile();
                ClassSignature classSig = null;
               
            boolean displayGenerics = SystemFacade.getInstance().getPreferences().isSettingTrue(Settings.DISPLAY_GENERICS);
                if (displayGenerics) {
                  SignatureAttribute signature = cf.getAttributes().getSignatureAttribute();
                  if (signature != null) {
                    classSig = Signatures.getClassSignature(signature.getSignatureString());
                  }
                }
               
                String access = cf.getAccessString();
                if (access.length() > 0) {
                    sd.drawKeyword(access + " ");
                }

                if (AccessFlags.isEnum(cf.getAccessFlags())) {
                  sd.drawKeyword("enum ");
                } else if (AccessFlags.isAnnotation(cf.getAccessFlags())) {
                  sd.drawKeyword("@interface ");
                } else if (AccessFlags.isInterface(cf.getAccessFlags())) {
                      sd.drawKeyword("interface ");
                } else {
                  sd.drawKeyword("class ");
                }

                sd.drawDefault(cf.getShortClassName());
                String superClass = cf.getSuperClassName();
               
                 if (classSig != null) {
                     renderFormalTypeParameters(sd, ia, classSig.getFormalTypeParameters());
                }
                
                 sd.drawDefault(" ");
               
                if (superClass != null) {
                  boolean displayExtendsObject = SystemFacade.getInstance().getPreferences().isSettingTrue(Settings.DISPLAY_EXTENDS_OBJECT);
                  if (!superClass.equals("java.lang.Object") ||
                    displayExtendsObject) {
                    sd.drawKeyword("extends ");
                    if (classSig == null) {
                      sd.drawDefault(ia.getShortName(superClass));
                    } else {
                      renderGenericJavaType(sd, ia, classSig.getSuperClassSignature());
                    }
                    sd.drawDefault(" ");
                  }
                }

                List interfaces = cf.getInterfaces();
                if (interfaces.size() > 0) {
                    if (AccessFlags.isInterface(cf.getAccessFlags())) {
                      sd.drawKeyword("extends ");
                    } else {
                      sd.drawKeyword("implements ");
                    }
                    if (classSig == null) {
                      for (int i = 0; i < interfaces.size(); i++) {
                        Interface interface0 = (Interface) interfaces.get(i);
                        if (i > 0) {
                          sd.drawDefault(", ");
                        }
                        sd.drawDefault(ia.getShortName(interface0.getName()));
                      }
                    } else {
                      boolean first = true;
                      for (GenericJavaType intf : classSig.getSuperInterfaceSignatures()) {
                        if (first) {
                          first = false;
                        } else {
                          sd.drawDefault(", ");
                        }
                      renderGenericJavaType(sd, ia, intf);                       
                      }
                    }

                    sd.drawDefault(" ");
                }

                sd.drawDefault("{");
            }
        } else if (er instanceof FieldDefRow) {
            FieldDefRow fdr = (FieldDefRow)er;
            Field f = fdr.getField();
        FieldSignature fieldSig = null;
            boolean displayGenerics = SystemFacade.getInstance().getPreferences().isSettingTrue(Settings.DISPLAY_GENERICS);
            if (displayGenerics) {
              SignatureAttribute signature = f.getAttributes().getSignatureAttribute();
              if (signature != null) {
                fieldSig = Signatures.getFieldSignature(signature.getSignatureString());
              }
            }

            sd.drawIndent();
            String access = f.getAccessString();
            if (access.length() > 0) {
                sd.drawKeyword(access + " ");
            }
            JavaType ret = f.getDescriptor().getReturn();
            if (fieldSig == null) {
              if (ret.isPrimitive()) {
                sd.drawKeyword(ret.getType());
              } else {
                sd.drawDefault(ia.getShortName(ret.getType()));
              }
              sd.drawDefault(ret.getDimensions());
            } else {
              renderGenericJavaType(sd, ia, fieldSig.getType());
            }
           
          sd.drawDefault(" ");

            sd.drawField(f.getName());
            ConstantPoolInfo constant = f.getConstant();
            if (constant != null) {
              sd.drawDefault(" = ");
              drawConstant(sd, constant);
            }
            sd.drawDefault(";");
        } else if (er instanceof DeprecatedAnnotationDefRow) {
          sd.drawIndent();
          sd.drawAnnotation("@Deprecated");
        } else if (er instanceof ClassAnnotationDefRow || er instanceof MethodAnnotationDefRow || er instanceof FieldAnnotationDefRow) {
          Annotation ann = null;
          if (er instanceof ClassAnnotationDefRow) {
            ann = ((ClassAnnotationDefRow)er).getAnnotation();
          } else if (er instanceof MethodAnnotationDefRow) {
            sd.drawIndent();
            ann = ((MethodAnnotationDefRow)er).getAnnotation();
          } else {
            sd.drawIndent();
            ann = ((FieldAnnotationDefRow)er).getAnnotation();
          }
         
          sd.drawAnnotation("@" + ia.getShortName(ann.getName()));
          if (ann.getElementValueCount() > 0) {
            sd.drawDefault("(");
            Map<String, ElementValue> elementValues = ann.getElementValues();
            boolean first = true;
            for (Entry<String, ElementValue> entry : elementValues.entrySet()) {
              if (!first) {
                sd.drawDefault(", ");
              } else {
                first = false;
              }
              if (entry.getKey().equals("value") && elementValues.size() == 1) {
                // only one element, named "value", don't show the display name, just show the value
              } else {
                sd.drawDefault(entry.getKey() + "=");
              }
              ElementValue ev = entry.getValue();
              drawElementValue(sd, ev, ia);
            }
            sd.drawDefault(")");
          }
        } else if (er instanceof MethodDefRow) {
            MethodDefRow mdr = (MethodDefRow)er;
          sd.drawIndent();
          if (mdr.isClosing()) {
                sd.drawDefault("}");
            } else {
                Method m = mdr.getMethod();

                MethodSignature methodSig = null;
                boolean displayGenerics = SystemFacade.getInstance().getPreferences().isSettingTrue(Settings.DISPLAY_GENERICS);
                if (displayGenerics) {
                  SignatureAttribute signature = m.getAttributes().getSignatureAttribute();
                  if (signature != null) {
                    methodSig = Signatures.getMethodSignature(signature.getSignatureString());
                  }
                }

                String access = m.getAccessString();
                if (access.length() > 0) {
View Full Code Here


        }
      }
    }
   
    private static void getSignatureImports(Imports imports, Attributes attrs) {
      SignatureAttribute attr = attrs.getSignatureAttribute();
      if (attr != null) {
        Signature signature = Signatures.getSignature(attr.getSignatureString());
        List<FormalTypeParameter> typeParams = signature.getFormalTypeParameters();
        if (typeParams != null) {
          for (FormalTypeParameter typeParam : typeParams) {
            for (GenericJavaType type : typeParam.getTypeUnion()) {
              getGenericJavaTypeImports(imports, type);
View Full Code Here

TOP

Related Classes of net.sf.rej.java.attribute.SignatureAttribute

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.