• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2
3declare -A INNER
4declare -A PARAMETER
5declare -A IMPORT
6
7# Declare stubs for jspecify annotations to reduce external dependencies.
8ANNOTATIONS=(
9    org.jspecify.annotations.Nullable
10    org.jspecify.annotations.NullMarked
11)
12
13for a in ${ANNOTATIONS[@]}; do
14    package=${a%.*}
15    class=${a##*.}
16    dir=$(dirname $0)/src/${package//.//}
17    file=${class}.java
18    inner=${INNER[$a]}
19    parameter=${PARAMETER[$a]}
20    import=
21
22    if [ -n "${parameter}" ]; then
23	parameter="${parameter} value();"
24    fi
25
26    for i in ${IMPORT[$a]}; do
27	import="${import}import ${i};"
28    done
29
30    mkdir -p ${dir}
31    sed -e"s/__PACKAGE__/${package}/" \
32	-e"s/__CLASS__/${class}/" \
33	-e"s/__INNER__/${inner}/" \
34	-e"s/__PARAMETER__/${parameter}/" \
35	-e"s/__IMPORT__/${import}/" \
36	$(dirname $0)/tmpl.java > ${dir}/${file}
37    google-java-format -i ${dir}/${file}
38done
39