/*
- * 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.
* 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 java.util.ArrayList;
-import java.util.List;
-
import org.wamblee.system.core.DefaultProvidedInterface;
import org.wamblee.system.core.ProvidedInterface;
import org.wamblee.system.core.RequiredInterface;
import org.wamblee.system.core.Scope;
+import java.util.ArrayList;
+import java.util.List;
+
/**
- * The class configuration encapsulates the knowledge of how to wrap a class as a component.
+ * The class configuration encapsulates the knowledge of how to wrap a class as
+ * a component.
*
* @author Erik Brakkee
- *
*/
public class ClassConfiguration {
+ private Class _class;
+
+ private ConstructorConfiguration constructorConfig;
+
+ private ObjectConfiguration objectConfig;
+
+ /**
+ * Constructs the configuration. By default no constructor is selected and
+ * one of {@link #select(Class...)} or {@link #greedy()} must be called.
+ *
+ * @param aClass
+ * Class to construct.
+ */
+ public ClassConfiguration(Class aClass) {
+ _class = aClass;
+ constructorConfig = new ConstructorConfiguration(aClass);
+ objectConfig = new ObjectConfiguration(aClass);
+ }
+
+ public ConstructorConfiguration getConstructorConfig() {
+ return constructorConfig;
+ }
+
+ public ObjectConfiguration getObjectConfig() {
+ return objectConfig;
+ }
+
+ /**
+ * Creates the object in the given scope.
+ *
+ * @param aScope
+ * Scope containing required interfaces for this object.
+ *
+ * @return object.
+ */
+ public Object create(Scope aScope) {
+ return constructorConfig.create(aScope);
+ }
+
+ /**
+ * Injects required interfaces through the setters
+ *
+ * @param aScope
+ * Scope in which injection takes place.
+ * @param aObject
+ * Object to inject into.
+ */
+ public void inject(Scope aScope, Object aObject) {
+ objectConfig.inject(aScope, aObject);
+ }
+
+ public List<ProvidedInterface> getProvidedInterfaces() {
+ List<ProvidedInterface> result = new ArrayList<ProvidedInterface>();
+ result.add(new DefaultProvidedInterface("provided", _class));
+
+ return result;
+ }
- private Class _class;
- private ConstructorConfiguration constructorConfig;
- private ObjectConfiguration objectConfig;
-
- /**
- * Constructs the configuration. By default no constructor is selected and
- * one of {@link #select(Class...)} or
- * {@link #greedy()} must be called.
- * @param aClass Class to construct.
- */
- public ClassConfiguration(Class aClass) {
- _class = aClass;
- constructorConfig = new ConstructorConfiguration(aClass);
- objectConfig = new ObjectConfiguration(aClass);
- }
-
- public ConstructorConfiguration getConstructorConfig() {
- return constructorConfig;
- }
-
- public ObjectConfiguration getObjectConfig() {
- return objectConfig;
- }
+ public List<RequiredInterface> getRequiredInterfaces() {
+ List<RequiredInterface> result = new ArrayList<RequiredInterface>();
+ result.addAll(constructorConfig.getRequiredInterfaces());
+ result.addAll(objectConfig.getRequiredInterfaces());
- /**
- * Creates the object in the given scope.
- * @param aScope Scope containing required interfaces for this object.
- * @return object.
- */
- public Object create(Scope aScope) {
- return constructorConfig.create(aScope);
- }
-
- /**
- * Injects required interfaces through the setters
- * @param aObject Object to inject into.
- * @param aScope Scope in which injection takes place.
- */
- public void inject(Scope aScope, Object aObject) {
- objectConfig.inject(aScope, aObject);
- }
-
- public List<ProvidedInterface> getProvidedInterfaces() {
- List<ProvidedInterface> result = new ArrayList<ProvidedInterface>();
- result.add(new DefaultProvidedInterface("provided", _class));
- return result;
- }
-
- public List<RequiredInterface> getRequiredInterfaces() {
- List<RequiredInterface> result = new ArrayList<RequiredInterface>();
- result.addAll(constructorConfig.getRequiredInterfaces());
- result.addAll(objectConfig.getRequiredInterfaces());
- return result;
- }
+ return result;
+ }
}