langtools/src/jdk.jdeps/share/classes/com/sun/tools/classfile/Attribute.java
changeset 36526 3b41f1c69604
parent 30846 2b3f379840f0
child 42407 f3702cff2933
equal deleted inserted replaced
36525:4caf88912b7f 36526:3b41f1c69604
     1 /*
     1 /*
     2  * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
    40 public abstract class Attribute {
    40 public abstract class Attribute {
    41     public static final String AnnotationDefault        = "AnnotationDefault";
    41     public static final String AnnotationDefault        = "AnnotationDefault";
    42     public static final String BootstrapMethods         = "BootstrapMethods";
    42     public static final String BootstrapMethods         = "BootstrapMethods";
    43     public static final String CharacterRangeTable      = "CharacterRangeTable";
    43     public static final String CharacterRangeTable      = "CharacterRangeTable";
    44     public static final String Code                     = "Code";
    44     public static final String Code                     = "Code";
       
    45     public static final String ConcealedPackages        = "ConcealedPackages";
    45     public static final String ConstantValue            = "ConstantValue";
    46     public static final String ConstantValue            = "ConstantValue";
    46     public static final String CompilationID            = "CompilationID";
    47     public static final String CompilationID            = "CompilationID";
    47     public static final String Deprecated               = "Deprecated";
    48     public static final String Deprecated               = "Deprecated";
    48     public static final String EnclosingMethod          = "EnclosingMethod";
    49     public static final String EnclosingMethod          = "EnclosingMethod";
    49     public static final String Exceptions               = "Exceptions";
    50     public static final String Exceptions               = "Exceptions";
       
    51     public static final String Hashes                   = "Hashes";
    50     public static final String InnerClasses             = "InnerClasses";
    52     public static final String InnerClasses             = "InnerClasses";
    51     public static final String LineNumberTable          = "LineNumberTable";
    53     public static final String LineNumberTable          = "LineNumberTable";
    52     public static final String LocalVariableTable       = "LocalVariableTable";
    54     public static final String LocalVariableTable       = "LocalVariableTable";
    53     public static final String LocalVariableTypeTable   = "LocalVariableTypeTable";
    55     public static final String LocalVariableTypeTable   = "LocalVariableTypeTable";
       
    56     public static final String MainClass                = "MainClass";
    54     public static final String MethodParameters         = "MethodParameters";
    57     public static final String MethodParameters         = "MethodParameters";
       
    58     public static final String Module                   = "Module";
    55     public static final String RuntimeVisibleAnnotations = "RuntimeVisibleAnnotations";
    59     public static final String RuntimeVisibleAnnotations = "RuntimeVisibleAnnotations";
    56     public static final String RuntimeInvisibleAnnotations = "RuntimeInvisibleAnnotations";
    60     public static final String RuntimeInvisibleAnnotations = "RuntimeInvisibleAnnotations";
    57     public static final String RuntimeVisibleParameterAnnotations = "RuntimeVisibleParameterAnnotations";
    61     public static final String RuntimeVisibleParameterAnnotations = "RuntimeVisibleParameterAnnotations";
    58     public static final String RuntimeInvisibleParameterAnnotations = "RuntimeInvisibleParameterAnnotations";
    62     public static final String RuntimeInvisibleParameterAnnotations = "RuntimeInvisibleParameterAnnotations";
    59     public static final String RuntimeVisibleTypeAnnotations = "RuntimeVisibleTypeAnnotations";
    63     public static final String RuntimeVisibleTypeAnnotations = "RuntimeVisibleTypeAnnotations";
    63     public static final String SourceFile               = "SourceFile";
    67     public static final String SourceFile               = "SourceFile";
    64     public static final String SourceID                 = "SourceID";
    68     public static final String SourceID                 = "SourceID";
    65     public static final String StackMap                 = "StackMap";
    69     public static final String StackMap                 = "StackMap";
    66     public static final String StackMapTable            = "StackMapTable";
    70     public static final String StackMapTable            = "StackMapTable";
    67     public static final String Synthetic                = "Synthetic";
    71     public static final String Synthetic                = "Synthetic";
       
    72     public static final String TargetPlatform           = "TargetPlatform";
       
    73     public static final String Version                  = "Version";
    68 
    74 
    69     public static class Factory {
    75     public static class Factory {
    70         public Factory() {
    76         public Factory() {
    71             // defer init of standardAttributeClasses until after options set up
    77             // defer init of standardAttributeClasses until after options set up
    72         }
    78         }
   107             standardAttributes.put(AnnotationDefault, AnnotationDefault_attribute.class);
   113             standardAttributes.put(AnnotationDefault, AnnotationDefault_attribute.class);
   108             standardAttributes.put(BootstrapMethods,  BootstrapMethods_attribute.class);
   114             standardAttributes.put(BootstrapMethods,  BootstrapMethods_attribute.class);
   109             standardAttributes.put(CharacterRangeTable, CharacterRangeTable_attribute.class);
   115             standardAttributes.put(CharacterRangeTable, CharacterRangeTable_attribute.class);
   110             standardAttributes.put(Code,              Code_attribute.class);
   116             standardAttributes.put(Code,              Code_attribute.class);
   111             standardAttributes.put(CompilationID,     CompilationID_attribute.class);
   117             standardAttributes.put(CompilationID,     CompilationID_attribute.class);
       
   118             standardAttributes.put(ConcealedPackages, ConcealedPackages_attribute.class);
   112             standardAttributes.put(ConstantValue,     ConstantValue_attribute.class);
   119             standardAttributes.put(ConstantValue,     ConstantValue_attribute.class);
   113             standardAttributes.put(Deprecated,        Deprecated_attribute.class);
   120             standardAttributes.put(Deprecated,        Deprecated_attribute.class);
   114             standardAttributes.put(EnclosingMethod,   EnclosingMethod_attribute.class);
   121             standardAttributes.put(EnclosingMethod,   EnclosingMethod_attribute.class);
   115             standardAttributes.put(Exceptions,        Exceptions_attribute.class);
   122             standardAttributes.put(Exceptions,        Exceptions_attribute.class);
       
   123             standardAttributes.put(Hashes,            Hashes_attribute.class);
   116             standardAttributes.put(InnerClasses,      InnerClasses_attribute.class);
   124             standardAttributes.put(InnerClasses,      InnerClasses_attribute.class);
   117             standardAttributes.put(LineNumberTable,   LineNumberTable_attribute.class);
   125             standardAttributes.put(LineNumberTable,   LineNumberTable_attribute.class);
   118             standardAttributes.put(LocalVariableTable, LocalVariableTable_attribute.class);
   126             standardAttributes.put(LocalVariableTable, LocalVariableTable_attribute.class);
   119             standardAttributes.put(LocalVariableTypeTable, LocalVariableTypeTable_attribute.class);
   127             standardAttributes.put(LocalVariableTypeTable, LocalVariableTypeTable_attribute.class);
       
   128             standardAttributes.put(MainClass,         MainClass_attribute.class);
   120             standardAttributes.put(MethodParameters,  MethodParameters_attribute.class);
   129             standardAttributes.put(MethodParameters,  MethodParameters_attribute.class);
       
   130             standardAttributes.put(Module,            Module_attribute.class);
   121             standardAttributes.put(RuntimeInvisibleAnnotations, RuntimeInvisibleAnnotations_attribute.class);
   131             standardAttributes.put(RuntimeInvisibleAnnotations, RuntimeInvisibleAnnotations_attribute.class);
   122             standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class);
   132             standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class);
   123             standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class);
   133             standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class);
   124             standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class);
   134             standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class);
   125             standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class);
   135             standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class);
   129             standardAttributes.put(SourceFile,        SourceFile_attribute.class);
   139             standardAttributes.put(SourceFile,        SourceFile_attribute.class);
   130             standardAttributes.put(SourceID,          SourceID_attribute.class);
   140             standardAttributes.put(SourceID,          SourceID_attribute.class);
   131             standardAttributes.put(StackMap,          StackMap_attribute.class);
   141             standardAttributes.put(StackMap,          StackMap_attribute.class);
   132             standardAttributes.put(StackMapTable,     StackMapTable_attribute.class);
   142             standardAttributes.put(StackMapTable,     StackMapTable_attribute.class);
   133             standardAttributes.put(Synthetic,         Synthetic_attribute.class);
   143             standardAttributes.put(Synthetic,         Synthetic_attribute.class);
       
   144             standardAttributes.put(TargetPlatform,    TargetPlatform_attribute.class);
       
   145             standardAttributes.put(Version,           Version_attribute.class);
   134         }
   146         }
   135 
   147 
   136         private Map<String,Class<? extends Attribute>> standardAttributes;
   148         private Map<String,Class<? extends Attribute>> standardAttributes;
   137     }
   149     }
   138 
   150 
   164         R visitDefault(DefaultAttribute attr, P p);
   176         R visitDefault(DefaultAttribute attr, P p);
   165         R visitAnnotationDefault(AnnotationDefault_attribute attr, P p);
   177         R visitAnnotationDefault(AnnotationDefault_attribute attr, P p);
   166         R visitCharacterRangeTable(CharacterRangeTable_attribute attr, P p);
   178         R visitCharacterRangeTable(CharacterRangeTable_attribute attr, P p);
   167         R visitCode(Code_attribute attr, P p);
   179         R visitCode(Code_attribute attr, P p);
   168         R visitCompilationID(CompilationID_attribute attr, P p);
   180         R visitCompilationID(CompilationID_attribute attr, P p);
       
   181         R visitConcealedPackages(ConcealedPackages_attribute attr, P p);
   169         R visitConstantValue(ConstantValue_attribute attr, P p);
   182         R visitConstantValue(ConstantValue_attribute attr, P p);
   170         R visitDeprecated(Deprecated_attribute attr, P p);
   183         R visitDeprecated(Deprecated_attribute attr, P p);
   171         R visitEnclosingMethod(EnclosingMethod_attribute attr, P p);
   184         R visitEnclosingMethod(EnclosingMethod_attribute attr, P p);
   172         R visitExceptions(Exceptions_attribute attr, P p);
   185         R visitExceptions(Exceptions_attribute attr, P p);
       
   186         R visitHashes(Hashes_attribute attr, P p);
   173         R visitInnerClasses(InnerClasses_attribute attr, P p);
   187         R visitInnerClasses(InnerClasses_attribute attr, P p);
   174         R visitLineNumberTable(LineNumberTable_attribute attr, P p);
   188         R visitLineNumberTable(LineNumberTable_attribute attr, P p);
   175         R visitLocalVariableTable(LocalVariableTable_attribute attr, P p);
   189         R visitLocalVariableTable(LocalVariableTable_attribute attr, P p);
   176         R visitLocalVariableTypeTable(LocalVariableTypeTable_attribute attr, P p);
   190         R visitLocalVariableTypeTable(LocalVariableTypeTable_attribute attr, P p);
       
   191         R visitMainClass(MainClass_attribute attr, P p);
   177         R visitMethodParameters(MethodParameters_attribute attr, P p);
   192         R visitMethodParameters(MethodParameters_attribute attr, P p);
       
   193         R visitModule(Module_attribute attr, P p);
   178         R visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, P p);
   194         R visitRuntimeVisibleAnnotations(RuntimeVisibleAnnotations_attribute attr, P p);
   179         R visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, P p);
   195         R visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, P p);
   180         R visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, P p);
   196         R visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, P p);
   181         R visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, P p);
   197         R visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, P p);
   182         R visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, P p);
   198         R visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, P p);
   186         R visitSourceFile(SourceFile_attribute attr, P p);
   202         R visitSourceFile(SourceFile_attribute attr, P p);
   187         R visitSourceID(SourceID_attribute attr, P p);
   203         R visitSourceID(SourceID_attribute attr, P p);
   188         R visitStackMap(StackMap_attribute attr, P p);
   204         R visitStackMap(StackMap_attribute attr, P p);
   189         R visitStackMapTable(StackMapTable_attribute attr, P p);
   205         R visitStackMapTable(StackMapTable_attribute attr, P p);
   190         R visitSynthetic(Synthetic_attribute attr, P p);
   206         R visitSynthetic(Synthetic_attribute attr, P p);
       
   207         R visitTargetPlatform(TargetPlatform_attribute attr, P p);
       
   208         R visitVersion(Version_attribute attr, P p);
   191     }
   209     }
   192 }
   210 }