use of com.android.builder.internal.SymbolLoader.SymbolEntry in project bazel by bazelbuild.
the class RClassGenerator method getSymbols.
private static Table<String, String, SymbolEntry> getSymbols(SymbolLoader symbolLoader) throws IOException {
// TODO(bazel-team): remove when we update android_ide_common to a version w/ public visibility
try {
Method getSymbols = SymbolLoader.class.getDeclaredMethod("getSymbols");
getSymbols.setAccessible(true);
@SuppressWarnings("unchecked") Table<String, String, SymbolEntry> result = (Table<String, String, SymbolEntry>) getSymbols.invoke(symbolLoader);
return result;
} catch (ReflectiveOperationException e) {
throw new IOException(e);
}
}
use of com.android.builder.internal.SymbolLoader.SymbolEntry in project bazel by bazelbuild.
the class RClassGenerator method getInitializers.
private static List<FieldInitializer> getInitializers(String typeName, Table<String, String, SymbolEntry> symbols, Table<String, String, SymbolEntry> values) {
Map<String, SymbolEntry> rowMap = symbols.row(typeName);
Set<String> symbolSet = rowMap.keySet();
List<String> symbolList = new ArrayList<>(symbolSet);
Collections.sort(symbolList);
List<FieldInitializer> initializers = new ArrayList<>();
for (String symbolName : symbolList) {
// get the matching SymbolEntry from the values Table.
SymbolEntry value = values.get(typeName, symbolName);
if (value != null) {
if (value.getType().equals("int")) {
initializers.add(IntFieldInitializer.of(value.getName(), value.getValue()));
} else {
Preconditions.checkArgument(value.getType().equals("int[]"));
initializers.add(IntArrayFieldInitializer.of(value.getName(), value.getValue()));
}
} else {
// Value may be missing if resource overriding eliminates resources at the binary
// level, which were originally present at the library level.
logger.fine(String.format("Skipping R.%s.%s -- value not known in binary's R.txt", typeName, symbolName));
}
}
return initializers;
}
Aggregations