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