• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.base.annotations;
6 
7 import java.lang.annotation.ElementType;
8 import java.lang.annotation.Retention;
9 import java.lang.annotation.RetentionPolicy;
10 import java.lang.annotation.Target;
11 
12 /**
13  * JNIAdditionalImport is used by the JNI generator to qualify inner types used on JNI methods. Must
14  * be used when an inner class is used from a class within the same package. Example:
15  *
16  * <pre>
17  * @JNIAdditionImport(Foo.class)
18  * public class Bar {
19  *     @CalledByNative static void doSomethingWithInner(Foo.Inner inner) {
20  *     ...
21  *     }
22  * }
23  * <pre>
24  * <p>
25  * Notes:
26  * 1) Foo must be in the same package as Bar
27  * 2) For classes in different packages, they should be imported as:
28  *    import other.package.Foo;
29  *    and this annotation should not be used.
30  */
31 @Target(ElementType.TYPE)
32 @Retention(RetentionPolicy.CLASS)
33 public @interface JNIAdditionalImport {
value()34     Class<?>[] value();
35 }
36