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.*; 013 import org.picocontainer.converters.ConvertsNothing; 014 015 import java.io.Serializable; 016 import java.util.Collection; 017 import java.util.Collections; 018 import java.util.List; 019 import java.lang.annotation.Annotation; 020 import java.lang.reflect.Type; 021 022 /** 023 * Empty pico container serving as recoil damper in situations where you 024 * do not like to check whether container reference supplied to you 025 * is null or not 026 * 027 * @author Konstantin Pribluda 028 */ 029 @SuppressWarnings("serial") 030 public class EmptyPicoContainer implements PicoContainer, Converting, Serializable { 031 032 @SuppressWarnings("unused") 033 public Object getComponent(Object componentKeyOrType) { 034 return null; 035 } 036 037 @SuppressWarnings("unused") 038 public Object getComponent(Object componentKeyOrType, Type into) { 039 return null; 040 } 041 042 @SuppressWarnings("unused") 043 public <T> T getComponent(Class<T> componentType) { 044 return null; 045 } 046 047 @SuppressWarnings("unused") 048 public <T> T getComponent(Class<T> componentType, Class<? extends Annotation> binding) { 049 return null; 050 } 051 052 public List getComponents() { 053 return Collections.EMPTY_LIST; 054 } 055 056 public PicoContainer getParent() { 057 return null; 058 } 059 060 @SuppressWarnings("unused") 061 public ComponentAdapter<?> getComponentAdapter(Object componentKey) { 062 return null; 063 } 064 065 @SuppressWarnings("unused") 066 public <T> ComponentAdapter<T> getComponentAdapter(Class<T> componentType, NameBinding componentNameBinding) { 067 return null; 068 } 069 070 @SuppressWarnings("unused") 071 public <T> ComponentAdapter<T> getComponentAdapter(Class<T> componentType, Class<? extends Annotation> binding) { 072 return null; 073 } 074 075 public Collection<ComponentAdapter<?>> getComponentAdapters() { 076 return Collections.emptyList(); 077 } 078 079 @SuppressWarnings("unused") 080 public <T> List<ComponentAdapter<T>> getComponentAdapters(Class<T> componentType) { 081 return Collections.emptyList(); 082 } 083 084 @SuppressWarnings("unused") 085 public <T> List<ComponentAdapter<T>> getComponentAdapters(Class<T> componentType, Class<? extends Annotation> binding) { 086 return Collections.emptyList(); 087 } 088 089 /** 090 * we do not have anything to do here. 091 */ 092 @SuppressWarnings("unused") 093 public void accept(PicoVisitor visitor) { 094 //Does nothing. 095 } 096 097 /** {@inheritDoc} **/ 098 @SuppressWarnings("unused") 099 public <T> List<T> getComponents(Class<T> componentType) { 100 return Collections.emptyList(); 101 } 102 103 @Override 104 public String toString() { 105 return "(empty)"; 106 } 107 108 public Converters getConverters() { 109 return new ConvertsNothing(); 110 } 111 112 }