| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package org.chromium.components.module_installer.builder; |
| |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.RetentionPolicy; |
| import java.lang.annotation.Target; |
| |
| /** |
| * Denotes an interface to be the interface of a feature module. For a module with name foo, this |
| * annotation will generate a class FooModule that offers the same functionality as {@link Module}. |
| */ |
| @Target(ElementType.TYPE) |
| @Retention(RetentionPolicy.CLASS) |
| public @interface ModuleInterface { |
| /** The name of the module. */ |
| String module(); |
| /** The fully qualified name of the module's interface implementation. */ |
| String impl(); |
| } |