103b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit/** 203b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * Copyright (C) 2009 Google Inc. 303b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * 403b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * Licensed under the Apache License, Version 2.0 (the "License"); 503b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * you may not use this file except in compliance with the License. 603b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * You may obtain a copy of the License at 703b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * 803b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * http://www.apache.org/licenses/LICENSE-2.0 903b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * 1003b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * Unless required by applicable law or agreed to in writing, software 1103b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * distributed under the License is distributed on an "AS IS" BASIS, 1203b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1303b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * See the License for the specific language governing permissions and 1403b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * limitations under the License. 1503b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit */ 1603b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit 175ae41eb77073b47e75c2dcf3766137f2352fbaf9limpbizkitpackage com.google.inject.internal; 1803b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit 19132a5db7c643b8f367eb5f09024cf13ea37c9831sberlinimport com.google.inject.spi.ProvisionListenerBinding; 20ee79246d47f0e4a0a4f86543809135620487332dlimpbizkitimport com.google.inject.spi.TypeListenerBinding; 2103b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit 2203b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit/** 235ae41eb77073b47e75c2dcf3766137f2352fbaf9limpbizkit * Handles {@code Binder#bindListener} commands. 2403b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * 2503b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit * @author jessewilson@google.com (Jesse Wilson) 2603b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit */ 27132a5db7c643b8f367eb5f09024cf13ea37c9831sberlinfinal class ListenerBindingProcessor extends AbstractProcessor { 2803b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit 29132a5db7c643b8f367eb5f09024cf13ea37c9831sberlin ListenerBindingProcessor(Errors errors) { 3003b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit super(errors); 3103b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit } 3203b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit 33ee79246d47f0e4a0a4f86543809135620487332dlimpbizkit @Override public Boolean visit(TypeListenerBinding binding) { 34ee79246d47f0e4a0a4f86543809135620487332dlimpbizkit injector.state.addTypeListener(binding); 3503b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit return true; 3603b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit } 37132a5db7c643b8f367eb5f09024cf13ea37c9831sberlin 38132a5db7c643b8f367eb5f09024cf13ea37c9831sberlin @Override public Boolean visit(ProvisionListenerBinding binding) { 39132a5db7c643b8f367eb5f09024cf13ea37c9831sberlin injector.state.addProvisionListener(binding); 40132a5db7c643b8f367eb5f09024cf13ea37c9831sberlin return true; 41132a5db7c643b8f367eb5f09024cf13ea37c9831sberlin } 4203b81a6b931a06c7697e422b218e3734a7f262cclimpbizkit}