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