#!/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