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