1 /* 2 * Copyright (C) 2017 The Dagger Authors. 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 * http://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 17 package dagger.internal.codegen.base; 18 19 import static dagger.internal.codegen.base.DiagnosticFormatting.stripCommonTypePrefixes; 20 21 import androidx.room.compiler.processing.XProcessingEnv; 22 import dagger.spi.model.DaggerAnnotation; 23 import dagger.spi.model.Scope; 24 25 /** Common names and convenience methods for {@link Scope}s. */ 26 public final class Scopes { 27 /** Returns a representation for {@link dagger.producers.ProductionScope} scope. */ productionScope(XProcessingEnv processingEnv)28 public static Scope productionScope(XProcessingEnv processingEnv) { 29 return Scope.scope(DaggerAnnotation.from(ProducerAnnotations.productionScope(processingEnv))); 30 } 31 32 /** 33 * Returns the readable source representation (name with @ prefix) of the scope's annotation type. 34 * 35 * <p>It's readable source because it has had common package prefixes removed, e.g. 36 * {@code @javax.inject.Singleton} is returned as {@code @Singleton}. 37 */ getReadableSource(Scope scope)38 public static String getReadableSource(Scope scope) { 39 return stripCommonTypePrefixes(scope.toString()); 40 } 41 } 42