001 /***************************************************************************** 002 * Copyright (C) PicoContainer Organization. All rights reserved. * 003 * ------------------------------------------------------------------------- * 004 * The software in this package is published under the terms of the BSD * 005 * style license a copy of which has been included with this distribution in * 006 * the LICENSE.txt file. * 007 * * 008 * Original code by Paul Hammant * 009 *****************************************************************************/ 010 package org.picocontainer.containers; 011 012 import org.picocontainer.ComponentAdapter; 013 import org.picocontainer.PicoContainer; 014 import org.picocontainer.PicoVisitor; 015 import org.picocontainer.NameBinding; 016 017 import java.io.Serializable; 018 import java.util.Collection; 019 import java.util.Collections; 020 import java.util.List; 021 import java.lang.annotation.Annotation; 022 import java.lang.reflect.Type; 023 024 /** 025 * empty pico container serving as recoil damper in situations where you 026 * do not like to check whether container reference suplpied to you 027 * is null or not 028 * 029 * @author Konstantin Pribluda 030 */ 031 @SuppressWarnings("serial") 032 public class EmptyPicoContainer implements PicoContainer, Serializable { 033 034 public Object getComponent(Object componentKeyOrType) { 035 return null; 036 } 037 038 public Object getComponent(Object componentKeyOrType, Type into) { 039 return null; 040 } 041 042 public <T> T getComponent(Class<T> componentType) { 043 return null; 044 } 045 046 public <T> T getComponent(Class<T> componentType, Class<? extends Annotation> binding) { 047 return null; 048 } 049 050 public List getComponents() { 051 return Collections.EMPTY_LIST; 052 } 053 054 public PicoContainer getParent() { 055 return null; 056 } 057 058 public ComponentAdapter<?> getComponentAdapter(Object componentKey) { 059 return null; 060 } 061 062 public <T> ComponentAdapter<T> getComponentAdapter(Class<T> componentType, NameBinding componentNameBinding) { 063 return null; 064 } 065 066 public <T> ComponentAdapter<T> getComponentAdapter(Class<T> componentType, Class<? extends Annotation> binding) { 067 return null; 068 } 069 070 public Collection<ComponentAdapter<?>> getComponentAdapters() { 071 return Collections.emptyList(); 072 } 073 074 public <T> List<ComponentAdapter<T>> getComponentAdapters(Class<T> componentType) { 075 return Collections.emptyList(); 076 } 077 078 public <T> List<ComponentAdapter<T>> getComponentAdapters(Class<T> componentType, Class<? extends Annotation> binding) { 079 return Collections.emptyList(); 080 } 081 082 /** 083 * we do not have anything to do here. 084 */ 085 public void accept(PicoVisitor visitor) { 086 } 087 088 public <T> List<T> getComponents(Class<T> componentType) { 089 return Collections.emptyList(); 090 } 091 092 public String toString() { 093 return "(empty)"; 094 } 095 }