@@ -0,0 +1,2410 @@
+/*%0A * Copyright (C) 2014 Google, Inc.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A * http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage dagger;%0A%0Aimport javax.inject.Inject;%0Aimport javax.inject.Provider;%0Aimport javax.inject.Qualifier;%0A%0A/**%0A * Annotates an interface or abstract class for which a fully-formed, dependency-injected%0A * implementation is to be generated from a set of %7B@linkplain #modules%7D. The generated class will%0A * have the name of the type annotated with %7B@code @Component%7D prepended with%0A * %7B@code DaggerComponent_%7D.  For example, %7B@code @Component interface MyComponent %7B...%7D%7D will%0A * produce an implementation named %7B@code DaggerComponent_MyComponent%7D.%0A *%0A * %3Ch2%3EComponent methods%0A *%0A * %3Cp%3EEvery type annotated with %7B@code @Component%7D must contain at least one abstract component%0A * method. Component methods must either represent %7B@linkplain Provider provision%7D or%0A * %7B@linkplain MembersInjector member injection%7D.%0A *%0A * Provision methods have no arguments and return an %7B@link Inject injected%7D or%0A * %7B@link Provides provided%7D type.  Each may have a %7B@link Qualifier%7D annotation as well. The%0A * following are all valid provision method declarations: %3Cpre%3E   %7B@code%0A *   SomeType getSomeType();%0A *   Set%3CSomeType%3E getSomeTypes();%0A *   @PortNumber int getPortNumber();%0A *   %7D%3C/pre%3E%0A *%0A * Member injection methods take a single parameter and optionally return that same type. The%0A * following are all valid member injection method declarations: %3Cpre%3E   %7B@code%0A *   void injectSomeType(SomeType someType);%0A *   SomeType injectAndReturnSomeType(SomeType someType);%0A *   %7D%3C/pre%3E%0A *%0A * @author Gregory Kick%0A * @since 2.0%0A */%0A// TODO(gak): add missing spec for @Scope%0A// TODO(gak): add missing spec for component dependencies%0Apublic @interface Component %7B%0A  /**%0A   * A list of classes annotated with %7B@link Module%7D whose bindings are used to generate the%0A   * component implementation.%0A   */%0A  Class%3C?%3E%5B%5D modules() default %7B%7D;%0A%7D%0A

Add a rough version of @Component as a placeholder at which to point annotation processors. Notably, it is missing discussions of dependencies and scope. ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=65607468