xref: /aosp_15_r20/external/auto/android-annotation-stubs/gen_annotations.sh (revision 1c2bbba85eccddce6de79cbbf1645fda32e723f0)
1*1c2bbba8SAndroid Build Coastguard Worker#!/bin/bash
2*1c2bbba8SAndroid Build Coastguard Worker
3*1c2bbba8SAndroid Build Coastguard Workerdeclare -A INNER
4*1c2bbba8SAndroid Build Coastguard Workerdeclare -A PARAMETER
5*1c2bbba8SAndroid Build Coastguard Workerdeclare -A IMPORT
6*1c2bbba8SAndroid Build Coastguard Worker
7*1c2bbba8SAndroid Build Coastguard WorkerANNOTATIONS=(
8*1c2bbba8SAndroid Build Coastguard Worker    net.ltgt.gradle.incap.IncrementalAnnotationProcessor
9*1c2bbba8SAndroid Build Coastguard Worker    org.checkerframework.checker.nullness.qual.Nullable
10*1c2bbba8SAndroid Build Coastguard Worker)
11*1c2bbba8SAndroid Build Coastguard Worker
12*1c2bbba8SAndroid Build Coastguard WorkerPARAMETER["net.ltgt.gradle.incap.IncrementalAnnotationProcessor"]="IncrementalAnnotationProcessorType"
13*1c2bbba8SAndroid Build Coastguard WorkerIMPORT["net.ltgt.gradle.incap.IncrementalAnnotationProcessor"]="net.ltgt.gradle.incap.IncrementalAnnotationProcessorType"
14*1c2bbba8SAndroid Build Coastguard Worker
15*1c2bbba8SAndroid Build Coastguard Workerfor a in ${ANNOTATIONS[@]}; do
16*1c2bbba8SAndroid Build Coastguard Worker    package=${a%.*}
17*1c2bbba8SAndroid Build Coastguard Worker    class=${a##*.}
18*1c2bbba8SAndroid Build Coastguard Worker    dir=$(dirname $0)/src/${package//.//}
19*1c2bbba8SAndroid Build Coastguard Worker    file=${class}.java
20*1c2bbba8SAndroid Build Coastguard Worker    inner=${INNER[$a]}
21*1c2bbba8SAndroid Build Coastguard Worker    parameter=${PARAMETER[$a]}
22*1c2bbba8SAndroid Build Coastguard Worker    import=
23*1c2bbba8SAndroid Build Coastguard Worker
24*1c2bbba8SAndroid Build Coastguard Worker    if [ -n "${parameter}" ]; then
25*1c2bbba8SAndroid Build Coastguard Worker        parameter="${parameter} value();"
26*1c2bbba8SAndroid Build Coastguard Worker    fi
27*1c2bbba8SAndroid Build Coastguard Worker
28*1c2bbba8SAndroid Build Coastguard Worker    for i in ${IMPORT[$a]}; do
29*1c2bbba8SAndroid Build Coastguard Worker        import="${import}import ${i};"
30*1c2bbba8SAndroid Build Coastguard Worker    done
31*1c2bbba8SAndroid Build Coastguard Worker
32*1c2bbba8SAndroid Build Coastguard Worker    mkdir -p ${dir}
33*1c2bbba8SAndroid Build Coastguard Worker    sed -e"s/__PACKAGE__/${package}/" \
34*1c2bbba8SAndroid Build Coastguard Worker        -e"s/__CLASS__/${class}/" \
35*1c2bbba8SAndroid Build Coastguard Worker        -e"s/__INNER__/${inner}/" \
36*1c2bbba8SAndroid Build Coastguard Worker        -e"s/__PARAMETER__/${parameter}/" \
37*1c2bbba8SAndroid Build Coastguard Worker        -e"s/__IMPORT__/${import}/" \
38*1c2bbba8SAndroid Build Coastguard Worker        $(dirname $0)/tmpl.java > ${dir}/${file}
39*1c2bbba8SAndroid Build Coastguard Worker    google-java-format -i ${dir}/${file}
40*1c2bbba8SAndroid Build Coastguard Workerdone
41*1c2bbba8SAndroid Build Coastguard Worker
42*1c2bbba8SAndroid Build Coastguard Workerf=$(dirname $0)/src/net/ltgt/gradle/incap/IncrementalAnnotationProcessorType.java
43*1c2bbba8SAndroid Build Coastguard Workercat > ${f} <<EOF
44*1c2bbba8SAndroid Build Coastguard Worker/*
45*1c2bbba8SAndroid Build Coastguard Worker * Copyright (C) 2019 The Android Open Source Project
46*1c2bbba8SAndroid Build Coastguard Worker *
47*1c2bbba8SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
48*1c2bbba8SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
49*1c2bbba8SAndroid Build Coastguard Worker * You may obtain a copy of the License at
50*1c2bbba8SAndroid Build Coastguard Worker *
51*1c2bbba8SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
52*1c2bbba8SAndroid Build Coastguard Worker *
53*1c2bbba8SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
54*1c2bbba8SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
55*1c2bbba8SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
56*1c2bbba8SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
57*1c2bbba8SAndroid Build Coastguard Worker * limitations under the License.
58*1c2bbba8SAndroid Build Coastguard Worker */
59*1c2bbba8SAndroid Build Coastguard Worker
60*1c2bbba8SAndroid Build Coastguard Workerpackage net.ltgt.gradle.incap;
61*1c2bbba8SAndroid Build Coastguard Worker
62*1c2bbba8SAndroid Build Coastguard Workerimport java.util.Locale;
63*1c2bbba8SAndroid Build Coastguard Worker
64*1c2bbba8SAndroid Build Coastguard Workerpublic enum IncrementalAnnotationProcessorType {
65*1c2bbba8SAndroid Build Coastguard Worker  DYNAMIC,
66*1c2bbba8SAndroid Build Coastguard Worker  ISOLATING,
67*1c2bbba8SAndroid Build Coastguard Worker  AGGREGATING;
68*1c2bbba8SAndroid Build Coastguard Worker
69*1c2bbba8SAndroid Build Coastguard Worker  public String getProcessorOption() {
70*1c2bbba8SAndroid Build Coastguard Worker    return "org.gradle.annotation.processing." + name().toLowerCase(Locale.ROOT);
71*1c2bbba8SAndroid Build Coastguard Worker  }
72*1c2bbba8SAndroid Build Coastguard Worker}
73*1c2bbba8SAndroid Build Coastguard WorkerEOF
74