Files
react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java
T
Tim Yung a689711f68 RN: Missing Copyright Headers
Summary: Adds copyright headers to all files that are missing them.

Reviewed By: hramos

Differential Revision: D12837494

fbshipit-source-id: 6330a18919676dec9ff2c03b7c9329ed9127d930
2018-10-31 01:37:26 -07:00

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();
}
}
}