mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
a689711f68
Summary: Adds copyright headers to all files that are missing them. Reviewed By: hramos Differential Revision: D12837494 fbshipit-source-id: 6330a18919676dec9ff2c03b7c9329ed9127d930
41 lines
1.2 KiB
Java
41 lines
1.2 KiB
Java
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* 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.bridge;
|
|
|
|
import com.facebook.infer.annotation.Assertions;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
public class JSIModuleRegistry {
|
|
|
|
private final Map<Class, JSIModuleHolder> mModules = new HashMap<>();
|
|
|
|
public JSIModuleRegistry() { }
|
|
|
|
public <T extends JSIModule> T getModule(Class<T> moduleClass) {
|
|
JSIModuleHolder jsiModuleHolder = mModules.get(moduleClass);
|
|
if (jsiModuleHolder == null) {
|
|
throw new IllegalArgumentException("Unable to find JSIModule for class " + moduleClass);
|
|
}
|
|
return (T) Assertions.assertNotNull(jsiModuleHolder.getJSIModule());
|
|
}
|
|
|
|
public void registerModules(List<JSIModuleSpec> jsiModules) {
|
|
for (JSIModuleSpec spec : jsiModules) {
|
|
mModules.put(spec.getJSIModuleClass(), new JSIModuleHolder(spec));
|
|
}
|
|
}
|
|
|
|
public void notifyJSInstanceDestroy() {
|
|
for (JSIModuleHolder moduleHolder : mModules.values()) {
|
|
moduleHolder.notifyJSInstanceDestroy();
|
|
}
|
|
}
|
|
}
|