1 /*
2  * Copyright 2021 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *   https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.google.android.enterprise.connectedapps.processor.containers;
17 
18 import com.google.android.enterprise.connectedapps.annotations.CrossProfileConfiguration;
19 import com.google.auto.value.AutoValue;
20 import com.google.common.collect.ImmutableCollection;
21 import javax.lang.model.element.TypeElement;
22 
23 /**
24  * Wrapper around information contained in an annotation of type {@link CrossProfileConfiguration}.
25  */
26 @AutoValue
27 public abstract class CrossProfileConfigurationAnnotationInfo {
28 
providerClasses()29   public abstract ImmutableCollection<TypeElement> providerClasses();
30 
serviceSuperclass()31   public abstract TypeElement serviceSuperclass();
32 
serviceClass()33   public abstract TypeElement serviceClass();
34 
connector()35   public abstract TypeElement connector();
36 
builder()37   public static Builder builder() {
38     return new AutoValue_CrossProfileConfigurationAnnotationInfo.Builder();
39   }
40 
41   @AutoValue.Builder
42   public abstract static class Builder {
43 
setProviderClasses(ImmutableCollection<TypeElement> value)44     public abstract Builder setProviderClasses(ImmutableCollection<TypeElement> value);
45 
setServiceSuperclass(TypeElement value)46     public abstract Builder setServiceSuperclass(TypeElement value);
47 
setServiceClass(TypeElement value)48     public abstract Builder setServiceClass(TypeElement value);
49 
setConnector(TypeElement value)50     public abstract Builder setConnector(TypeElement value);
51 
build()52     public abstract CrossProfileConfigurationAnnotationInfo build();
53   }
54 }
55