| /* |
| * Copyright 2012-present Facebook, Inc. |
| * |
| * 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 com.facebook.buck.model; |
| |
| import com.google.common.collect.ImmutableSortedSet; |
| |
| import javax.annotation.Nullable; |
| |
| public interface AnnotationProcessingData { |
| public static AnnotationProcessingData EMPTY = new AnnotationProcessingData() { |
| @Override |
| public boolean isEmpty() { |
| return true; |
| } |
| |
| @Override |
| public ImmutableSortedSet<String> getSearchPathElements() { |
| return ImmutableSortedSet.of(); |
| } |
| |
| @Override |
| public ImmutableSortedSet<String> getNames() { |
| return ImmutableSortedSet.of(); |
| } |
| |
| @Override |
| public ImmutableSortedSet<String> getParameters() { |
| return ImmutableSortedSet.of(); |
| } |
| |
| @Override |
| @Nullable |
| public String getGeneratedSourceFolderName() { |
| return null; |
| } |
| |
| @Override |
| public boolean getProcessOnly() { |
| return false; |
| } |
| }; |
| |
| /** |
| * True iff this has no data and will return empty sets and null Strings. |
| */ |
| public boolean isEmpty(); |
| |
| /** |
| * Path to search for annotation processors. |
| * Each element is a path relative to the project root. |
| */ |
| public ImmutableSortedSet<String> getSearchPathElements(); |
| |
| /** |
| * The set of fully-qualified names of annotation processor classes. |
| */ |
| public ImmutableSortedSet<String> getNames(); |
| |
| /** |
| * The set of parameters to pass to annotation processing (via javac -A). |
| */ |
| public ImmutableSortedSet<String> getParameters(); |
| |
| /** |
| * Controls whether compilation happens along with annotation processing: |
| * false => process annotations (if any) and compile. This is the default. |
| * true => process annotations (if any) only and do not compile. |
| */ |
| public boolean getProcessOnly(); |
| |
| /** |
| * The name of the root folder where annotation processing source should be generated. |
| */ |
| @Nullable |
| public String getGeneratedSourceFolderName(); |
| } |