diff options
Diffstat (limited to 'android-annotation-stubs/gen_annotations.sh')
-rwxr-xr-x | android-annotation-stubs/gen_annotations.sh | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/android-annotation-stubs/gen_annotations.sh b/android-annotation-stubs/gen_annotations.sh new file mode 100755 index 00000000..90c9fcfb --- /dev/null +++ b/android-annotation-stubs/gen_annotations.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +declare -A INNER +declare -A PARAMETER +declare -A IMPORT + +ANNOTATIONS=( + net.ltgt.gradle.incap.IncrementalAnnotationProcessor +) + +PARAMETER["net.ltgt.gradle.incap.IncrementalAnnotationProcessor"]="IncrementalAnnotationProcessorType" +IMPORT["net.ltgt.gradle.incap.IncrementalAnnotationProcessor"]="net.ltgt.gradle.incap.IncrementalAnnotationProcessorType" + +for a in ${ANNOTATIONS[@]}; do + package=${a%.*} + class=${a##*.} + dir=$(dirname $0)/src/${package//.//} + file=${class}.java + inner=${INNER[$a]} + parameter=${PARAMETER[$a]} + import= + + if [ -n "${parameter}" ]; then + parameter="${parameter} value();" + fi + + for i in ${IMPORT[$a]}; do + import="${import}import ${i};" + done + + mkdir -p ${dir} + sed -e"s/__PACKAGE__/${package}/" \ + -e"s/__CLASS__/${class}/" \ + -e"s/__INNER__/${inner}/" \ + -e"s/__PARAMETER__/${parameter}/" \ + -e"s/__IMPORT__/${import}/" \ + $(dirname $0)/tmpl.java > ${dir}/${file} + google-java-format -i ${dir}/${file} +done + +f=$(dirname $0)/src/net/ltgt/gradle/incap/IncrementalAnnotationProcessorType.java +cat > ${f} <<EOF +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.ltgt.gradle.incap; + +import java.util.Locale; + +public enum IncrementalAnnotationProcessorType { + DYNAMIC, + ISOLATING, + AGGREGATING; + + public String getProcessorOption() { + return "org.gradle.annotation.processing." + name().toLowerCase(Locale.ROOT); + } +} +EOF |