StaticInjectionRequest.java revision 477f9f9ce3e1077866b579e99cd33ab824f1ee69
1477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit/** 2477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * Copyright (C) 2008 Google Inc. 3477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * 4477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * Licensed under the Apache License, Version 2.0 (the "License"); 5477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * you may not use this file except in compliance with the License. 6477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * You may obtain a copy of the License at 7477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * 8477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * http://www.apache.org/licenses/LICENSE-2.0 9477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * 10477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * Unless required by applicable law or agreed to in writing, software 11477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * distributed under the License is distributed on an "AS IS" BASIS, 12477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * See the License for the specific language governing permissions and 14477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * limitations under the License. 15477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit */ 16477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit 17477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkitpackage com.google.inject.spi; 18477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit 19477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit 20477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkitimport static com.google.common.base.Preconditions.checkNotNull; 21477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkitimport com.google.common.collect.ImmutableList; 22477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkitimport java.util.List; 23477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit 24477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit/** 25477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * Immutable snapshot of a request for static injection. 26477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * 27477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit * @author jessewilson@google.com (Jesse Wilson) 28477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit */ 29477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkitpublic final class RequestStaticInjection implements Element { 30477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit private final Object source; 31477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit private final List<Class> types; 32477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit 33477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit RequestStaticInjection(Object source, Class[] types) { 34477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit this.source = checkNotNull(source, "source"); 35477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit this.types = ImmutableList.of(types); 36477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit } 37477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit 38477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit public Object getSource() { 39477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit return source; 40477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit } 41477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit 42477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit public List<Class> getTypes() { 43477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit return types; 44477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit } 45477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit 46477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit public <T> T acceptVisitor(Visitor<T> visitor) { 47477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit return visitor.visitRequestStaticInjection(this); 48477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit } 49477f9f9ce3e1077866b579e99cd33ab824f1ee69limpbizkit} 50