package org.wamblee.system.adapters;
import java.lang.reflect.Constructor;
-import java.lang.reflect.Member;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import org.wamblee.system.core.Scope;
import org.wamblee.system.core.SystemAssemblyException;
+/**
+ * Class that allows configuration of the constructor to use.
+ *
+ * In particular, it provides:
+ * <ul>
+ * <li> Selection of a constructor using explicit selection
+ * {@link #select(Class...)} or using the most greedy constructor
+ * {@link #greedy()}.
+ * </li>
+ * <li>
+ * Selection of methods to invoke to inject other objects into the object.
+ * </li>
+ * <li> Selection of fields to set.
+ * </li>
+ * </ul>
+ */
public class ConstructorConfiguration {
private Class _class;
private Constructor<?> _constructor;
private boolean _publicOnly;
/**
- * Constructs the configuration. By default no constructor is selected and
- * one of {@link #select(Class...)} or
- * {@link #greedy()} must be called.
+ * Constructs the configuration. By default the public constructor with the
+ * most arguments will be used.
* @param aClass Class to construct.
*/
public ConstructorConfiguration(Class aClass) {
/**
* Sets whether or no non public constructors are also considered.
- * Reset the choice of a constructor.
+ * Reset the choice of a constructor to its default.
* @param aNonPublic
* @return
*/