Files
react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/JSIModuleRegistry.java
T
David VaccaandFacebook Github Bot 8529b1ee91 Implement release of FabricUIManager resources
Reviewed By: achen1

Differential Revision: D8232155

fbshipit-source-id: 6683c692a830f5a73aab2c606167e54d668ae5c2
2018-06-01 17:54:50 -07:00

34 lines
997 B
Java

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