ModuleInterface.java 844 B

1234567891011121314151617181920212223
  1. // Copyright 2019 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. package org.chromium.components.module_installer.builder;
  5. import java.lang.annotation.ElementType;
  6. import java.lang.annotation.Retention;
  7. import java.lang.annotation.RetentionPolicy;
  8. import java.lang.annotation.Target;
  9. /**
  10. * Denotes an interface to be the interface of a feature module. For a module with name foo, this
  11. * annotation will generate a class FooModule that offers the same functionality as {@link Module}.
  12. */
  13. @Target(ElementType.TYPE)
  14. @Retention(RetentionPolicy.CLASS)
  15. public @interface ModuleInterface {
  16. /** The name of the module. */
  17. String module();
  18. /** The fully qualified name of the module's interface implementation. */
  19. String impl();
  20. }