1#!/bin/bash 2 3# Creates stubs for the checker framework annotations. 4 5ANNOTATIONS=( 6 kotlin.annotations.jvm.UnderMigration 7 org.checkerframework.checker.initialization.qual.UnknownInitialization 8 org.checkerframework.checker.nullness.compatqual.NullableType 9 org.checkerframework.checker.nullness.qual.EnsuresNonNull 10 org.checkerframework.checker.nullness.qual.EnsuresNonNullIf 11 org.checkerframework.checker.nullness.qual.MonotonicNonNull 12 org.checkerframework.checker.nullness.qual.NonNull 13 org.checkerframework.checker.nullness.qual.Nullable 14 org.checkerframework.checker.nullness.qual.PolyNull 15 org.checkerframework.checker.nullness.qual.RequiresNonNull 16 org.checkerframework.dataflow.qual.Pure 17) 18 19ENUMS=( 20 kotlin.annotations.jvm.MigrationStatus 21) 22 23rm -r $(dirname $0)/src/* 24 25autogenerated_notice="NOTE: This is an autogenerated file. Do not modify its \ 26contents. See annotation_template.java and gen_annotations.sh under \ 27platform\/external\/exoplayer\/annotation-stubs." 28 29for a in ${ANNOTATIONS[@]}; do 30 package=${a%.*} 31 class=${a##*.} 32 dir=$(dirname $0)/src/${package//.//} 33 value_type="String[]" 34 file=${class}.java 35 mkdir -p ${dir} 36 sed -e"s/__PACKAGE__/${package}/"\ 37 -e"s/__AUTOGENERATED_NOTICE__/${autogenerated_notice}/"\ 38 -e"s/__CLASS__/${class}/"\ 39 -e"s/__VALUE_TYPE__/${value_type}/"\ 40 annotation_template.java > ${dir}/${file} 41 google-java-format -i ${dir}/${file} 42done 43 44for a in ${ENUMS[@]}; do 45 package=${a%.*} 46 class=${a##*.} 47 dir=$(dirname $0)/src/${package//.//} 48 file=${class}.java 49 mkdir -p ${dir} 50 sed -e"s/__PACKAGE__/${package}/" -e"s/__CLASS__/${class}/" enum_template.java > ${dir}/${file} 51done 52