mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
6c0f73b322
Summary: This diff formats the Java class files inside xplat/js/react-native-github. Since google-java-format was enabled in D16071401 we want to codemode the existing code so that users don't have to deal with formatter lint noise at diff-time. ```arc f --paths-cmd 'hg files -I "**/*.java"'``` drop-conflicts Reviewed By: cpojer Differential Revision: D16071725 fbshipit-source-id: fc6e3852e45742c109f0c5ac4065d64201c74204
69 lines
2.2 KiB
Java
69 lines
2.2 KiB
Java
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
|
|
* directory of this source tree.
|
|
*/
|
|
package com.facebook.react;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import com.facebook.common.logging.FLog;
|
|
import com.facebook.react.bridge.ModuleHolder;
|
|
import com.facebook.react.bridge.NativeModule;
|
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
import com.facebook.react.common.ReactConstants;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
|
|
public class ReactPackageHelper {
|
|
/**
|
|
* A helper method to iterate over a list of Native Modules and convert them to an iterable.
|
|
*
|
|
* @param reactPackage
|
|
* @param reactApplicationContext
|
|
* @param reactInstanceManager
|
|
* @return
|
|
*/
|
|
public static Iterable<ModuleHolder> getNativeModuleIterator(
|
|
ReactPackage reactPackage,
|
|
ReactApplicationContext reactApplicationContext,
|
|
ReactInstanceManager reactInstanceManager) {
|
|
FLog.d(
|
|
ReactConstants.TAG,
|
|
reactPackage.getClass().getSimpleName()
|
|
+ " is not a LazyReactPackage, falling back to old version.");
|
|
final List<NativeModule> nativeModules;
|
|
if (reactPackage instanceof ReactInstancePackage) {
|
|
ReactInstancePackage reactInstancePackage = (ReactInstancePackage) reactPackage;
|
|
nativeModules =
|
|
reactInstancePackage.createNativeModules(reactApplicationContext, reactInstanceManager);
|
|
} else {
|
|
nativeModules = reactPackage.createNativeModules(reactApplicationContext);
|
|
}
|
|
return new Iterable<ModuleHolder>() {
|
|
@NonNull
|
|
@Override
|
|
public Iterator<ModuleHolder> iterator() {
|
|
return new Iterator<ModuleHolder>() {
|
|
int position = 0;
|
|
|
|
@Override
|
|
public ModuleHolder next() {
|
|
return new ModuleHolder(nativeModules.get(position++));
|
|
}
|
|
|
|
@Override
|
|
public boolean hasNext() {
|
|
return position < nativeModules.size();
|
|
}
|
|
|
|
@Override
|
|
public void remove() {
|
|
throw new UnsupportedOperationException("Cannot remove methods ");
|
|
}
|
|
};
|
|
}
|
|
};
|
|
}
|
|
}
|