// Copyright 2004-present Facebook. All Rights Reserved.
package com.facebook.react.module.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import com.facebook.react.bridge.NativeModule;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.SOURCE;
/**
* Annotates a function that returns a list of ModuleSpecs from which we get a list of NativeModules
* to create ReactModuleInfos from.
*/
@Retention(SOURCE)
@Target(TYPE)
public @interface ReactModuleList {
/**
* The Java modules in this list should be annotated with {@link ReactModule}.
* @return List of Java modules in the package.
*/
Class<? extends NativeModule>[] javaModules();
/**
* The View Managers in this list should be annotated with {@link ReactModule}.
* @return List of view manager in the package.
*/
Class<? extends NativeModule>[] viewManagers() default {};
}