xref: /aosp_15_r20/external/turbine/android-annotation-stubs/gen_annotations.sh (revision f7d94438c8bcdfdbf0d5a2a5e40120d0696e7088)
1*f7d94438SYifei Zhang#!/bin/bash
2*f7d94438SYifei Zhang
3*f7d94438SYifei Zhangdeclare -A INNER
4*f7d94438SYifei Zhangdeclare -A PARAMETER
5*f7d94438SYifei Zhangdeclare -A IMPORT
6*f7d94438SYifei Zhang
7*f7d94438SYifei ZhangANNOTATIONS=(
8*f7d94438SYifei Zhang    org.jspecify.nullness.Nullable
9*f7d94438SYifei Zhang    org.jspecify.nullness.NullMarked
10*f7d94438SYifei Zhang)
11*f7d94438SYifei Zhang
12*f7d94438SYifei Zhangfor a in ${ANNOTATIONS[@]}; do
13*f7d94438SYifei Zhang    package=${a%.*}
14*f7d94438SYifei Zhang    class=${a##*.}
15*f7d94438SYifei Zhang    dir=$(dirname $0)/src/${package//.//}
16*f7d94438SYifei Zhang    file=${class}.java
17*f7d94438SYifei Zhang    inner=${INNER[$a]}
18*f7d94438SYifei Zhang    parameter=${PARAMETER[$a]}
19*f7d94438SYifei Zhang    import=
20*f7d94438SYifei Zhang
21*f7d94438SYifei Zhang    if [ -n "${parameter}" ]; then
22*f7d94438SYifei Zhang	parameter="${parameter} value();"
23*f7d94438SYifei Zhang    fi
24*f7d94438SYifei Zhang
25*f7d94438SYifei Zhang    for i in ${IMPORT[$a]}; do
26*f7d94438SYifei Zhang	import="${import}import ${i};"
27*f7d94438SYifei Zhang    done
28*f7d94438SYifei Zhang
29*f7d94438SYifei Zhang    mkdir -p ${dir}
30*f7d94438SYifei Zhang    sed -e"s/__PACKAGE__/${package}/" \
31*f7d94438SYifei Zhang	-e"s/__CLASS__/${class}/" \
32*f7d94438SYifei Zhang	-e"s/__INNER__/${inner}/" \
33*f7d94438SYifei Zhang	-e"s/__PARAMETER__/${parameter}/" \
34*f7d94438SYifei Zhang	-e"s/__IMPORT__/${import}/" \
35*f7d94438SYifei Zhang	$(dirname $0)/tmpl.java > ${dir}/${file}
36*f7d94438SYifei Zhang    google-java-format -i ${dir}/${file}
37*f7d94438SYifei Zhangdone
38