X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fadapters%2FDefaultContainer.java;h=a09507aee3afd549c39b1aa1fe6d2d313c9147dd;hb=17775e14ecfb286e59f67117e5cee7e21e95ab1f;hp=c54206ea23ca3e8dd1f72b543958cda254511676;hpb=fddbe9b130633c7d8925f2580afea65767d1d615;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/adapters/DefaultContainer.java b/system/general/src/main/java/org/wamblee/system/adapters/DefaultContainer.java index c54206ea..a09507ae 100644 --- a/system/general/src/main/java/org/wamblee/system/adapters/DefaultContainer.java +++ b/system/general/src/main/java/org/wamblee/system/adapters/DefaultContainer.java @@ -1,5 +1,5 @@ /* - * Copyright 2008 the original author or authors. + * Copyright 2005-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -12,16 +12,24 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ package org.wamblee.system.adapters; +import org.wamblee.system.container.Container; import org.wamblee.system.core.Component; -import org.wamblee.system.core.Container; import org.wamblee.system.core.ProvidedInterface; import org.wamblee.system.core.RequiredInterface; +/** + * + * @author $author$ + * @version $Revision$ + */ public class DefaultContainer extends Container { - + /** + * Creates a new DefaultContainer object. + * + */ public DefaultContainer(String aName) { super(aName); } @@ -29,28 +37,36 @@ public class DefaultContainer extends Container { @Override public DefaultContainer addComponent(Component aComponent) { super.addComponent(aComponent); + return this; } - public DefaultContainer addComponent(String aName, Class aClass) { - return addComponent(new ClassAdapter(aName, new ClassConfiguration( - aClass))); - } - - public DefaultContainer addComponent(String aName, ClassConfiguration aConfiguration) { + public DefaultContainer addComponent(String aName, + ClassConfiguration aConfiguration) { return addComponent(new ClassAdapter(aName, aConfiguration)); } + public DefaultContainer addComponent(String aName, Object aObject, + ObjectConfiguration aConfiguration) { + if (!aConfiguration.appliesTo(aObject)) { + throw new IllegalArgumentException("Configuration '" + + aConfiguration + "' does nto applu to '" + aObject + "'"); + } + + return addComponent(new ObjectAdapter(aName, aObject, aConfiguration)); + } + @Override public DefaultContainer addRequiredInterface(RequiredInterface aRequired) { super.addRequiredInterface(aRequired); + return this; } @Override public DefaultContainer addProvidedInterface(ProvidedInterface aProvided) { super.addProvidedInterface(aProvided); + return this; } - }