• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.annotationvisitor;
17 
18 import org.apache.bcel.Const;
19 import org.apache.bcel.classfile.JavaClass;
20 
21 /**
22  */
23 public abstract class AnnotationContext implements StatusReporter {
24 
25   public final Status status;
26   public final JavaClass definingClass;
27 
AnnotationContext(Status status, JavaClass definingClass)28   public AnnotationContext(Status status, JavaClass definingClass) {
29     this.status = status;
30     this.definingClass = definingClass;
31   }
32 
getClassDescriptor()33   public String getClassDescriptor() {
34       // JavaClass.getName() returns the Java-style name (with . not /), so we must fetch
35       // the original class name from the constant pool.
36       return definingClass.getConstantPool().getConstantString(
37               definingClass.getClassNameIndex(), Const.CONSTANT_Class);
38   }
39 
40   /**
41    * @return the full descriptor of this member, in the format expected in
42    * the greylist.
43    */
getMemberDescriptor()44   public abstract String getMemberDescriptor();
45 }
46