private CodeBlock getCodeBlockForReactModuleInfos(List<String> nativeModules) throws ReactModuleSpecException { CodeBlock.Builder builder = CodeBlock.builder(); if (nativeModules == null || nativeModules.isEmpty()) { builder.addStatement("return Collections.emptyMap()"); } else { builder.addStatement("$T map = new $T()", MAP_TYPE, INSTANTIATED_MAP_TYPE); for (String nativeModule : nativeModules) { String keyString = nativeModule + ".class"; TypeElement typeElement = mElements.getTypeElement(nativeModule); ReactModule reactModule = typeElement.getAnnotation(ReactModule.class); if (reactModule == null) { throw new ReactModuleSpecException( keyString + " not found by ReactModuleSpecProcessor. " + "Did you forget to add the @ReactModule annotation to the native module?"); } String valueString = new StringBuilder() .append("new ReactModuleInfo(") .append("\"").append(reactModule.name()).append("\"").append(", ") .append(reactModule.canOverrideExistingModule()).append(", ") .append(reactModule.supportsWebWorkers()).append(", ") .append(reactModule.needsEagerInit()) .append(")") .toString(); builder.addStatement("map.put(" + keyString + ", " + valueString + ")"); } builder.addStatement("return map"); } return builder.build(); }
private CodeBlock getCodeBlockForReactModuleInfos(List<String> nativeModules) throws ReactModuleSpecException { CodeBlock.Builder builder = CodeBlock.builder(); if (nativeModules == null || nativeModules.isEmpty()) { builder.addStatement("return Collections.emptyMap()"); } else { builder.addStatement("$T map = new $T()", MAP_TYPE, INSTANTIATED_MAP_TYPE); for (String nativeModule : nativeModules) { String keyString = nativeModule + ".class"; TypeElement typeElement = mElements.getTypeElement(nativeModule); ReactModule reactModule = typeElement.getAnnotation(ReactModule.class); if (reactModule == null) { throw new ReactModuleSpecException( keyString + " not found by ReactModuleSpecProcessor. " + "Did you forget to add the @ReactModule annotation the the native module?"); } String valueString = new StringBuilder() .append("new ReactModuleInfo(") .append("\"").append(reactModule.name()).append("\"").append(", ") .append(reactModule.canOverrideExistingModule()).append(", ") .append(reactModule.supportsWebWorkers()).append(", ") .append(reactModule.needsEagerInit()) .append(")") .toString(); builder.addStatement("map.put(" + keyString + ", " + valueString + ")"); } builder.addStatement("return map"); } return builder.build(); }
private CodeBlock getCodeBlockForReactModuleInfos(List<String> nativeModules) throws ReactModuleSpecException { CodeBlock.Builder builder = CodeBlock.builder(); if (nativeModules == null || nativeModules.isEmpty()) { builder.addStatement("return Collections.emptyMap()"); } else { builder.addStatement("$T map = new $T()", MAP_TYPE, INSTANTIATED_MAP_TYPE); for (String nativeModule : nativeModules) { String keyString = nativeModule + ".class"; TypeElement typeElement = mElements.getTypeElement(nativeModule); if (typeElement == null) { throw new ReactModuleSpecException( keyString + " not found by ReactModuleSpecProcessor. " + "Did you misspell the module?"); } ReactModule reactModule = typeElement.getAnnotation(ReactModule.class); if (reactModule == null) { throw new ReactModuleSpecException( keyString + " not found by ReactModuleSpecProcessor. " + "Did you forget to add the @ReactModule annotation to the native module?"); } List<? extends Element> elements = typeElement.getEnclosedElements(); boolean hasConstants = false; if (elements != null) { hasConstants = elements.stream() .anyMatch((Element m) -> m.getKind() == ElementKind.METHOD && m.getSimpleName().contentEquals("getConstants")); } String valueString = new StringBuilder() .append("new ReactModuleInfo(") .append("\"").append(reactModule.name()).append("\"").append(", ") .append(reactModule.canOverrideExistingModule()).append(", ") .append(reactModule.supportsWebWorkers()).append(", ") .append(reactModule.needsEagerInit()).append(", ") .append(hasConstants) .append(")") .toString(); builder.addStatement("map.put(" + keyString + ", " + valueString + ")"); } builder.addStatement("return map"); } return builder.build(); }