X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fadapters%2FConstructorConfiguration.java;h=874d79516d5c841191782e8c1077bfeb3e731770;hb=dec278a67997ea8e85d10662e31548afd8890ed3;hp=d5256cc88315a7757249291b87c2a06cbaee2720;hpb=ddd261f331280640c5b53c7128230b629ebcd268;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/adapters/ConstructorConfiguration.java b/system/general/src/main/java/org/wamblee/system/adapters/ConstructorConfiguration.java index d5256cc8..874d7951 100644 --- a/system/general/src/main/java/org/wamblee/system/adapters/ConstructorConfiguration.java +++ b/system/general/src/main/java/org/wamblee/system/adapters/ConstructorConfiguration.java @@ -1,12 +1,12 @@ /* - * 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. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -30,73 +30,60 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; - /** - * Class that allows configuration of the constructor to use. In - * particular, it provides: - * + * Class that allows configuration of the constructor to use. In particular, it + * provides: + * */ public class ConstructorConfiguration { - /** - * DOCUMENT ME! - */ private Class clazz; - /** - * DOCUMENT ME! - */ private Constructor constructor; - /** - * DOCUMENT ME! - */ private ParameterValues values; - /** - * DOCUMENT ME! - */ private boolean publicOnly; -/** - * Constructs the configuration. By default the public constructor with the - * most arguments will be used. - * @param aClass Class to construct. - */ + /** + * Constructs the configuration. By default the public constructor with the + * most arguments will be used. + * + * @param aClass + * Class to construct. + */ public ConstructorConfiguration(Class aClass) { - clazz = aClass; - constructor = null; - publicOnly = true; + clazz = aClass; + constructor = null; + publicOnly = true; } /** - * Sets whether or no non public constructors are also considered. - * Reset the choice of a constructor to its default. - * + * Sets whether or no non public constructors are also considered. Reset the + * choice of a constructor to its default. + * * @param aNonPublic - * + * * @return */ public ConstructorConfiguration setNonPublic(boolean aNonPublic) { - publicOnly = !aNonPublic; - constructor = null; - values = null; + publicOnly = !aNonPublic; + constructor = null; + values = null; return this; } /** * Selects an explicit constructor. - * + * * @return Return the injector to allow call chaining. - * - * @throws SystemAssemblyException DOCUMENT ME! + * */ public ConstructorConfiguration select(Class... aTypes) { try { @@ -112,21 +99,21 @@ public class ConstructorConfiguration { /** * Selects the greediest constructor. - * + * * @return The injector to allow call chaining. - * - * @throws SystemAssemblyException if the greediest constructor cannot be - * uniquely identified. + * + * @throws SystemAssemblyException + * if the greediest constructor cannot be uniquely identified. */ public ConstructorConfiguration greedy() { Constructor[] declared = clazz.getDeclaredConstructors(); if (declared.length == 0) { - throw new SystemAssemblyException("Class '" + clazz - + " is an interface, primitive type, or array"); + throw new SystemAssemblyException("Class '" + clazz + + " is an interface, primitive type, or array"); } - int max = -1; + int max = -1; List> checked = new ArrayList>(); CollectionFilter.filter(Arrays.asList(declared), checked, new Condition>() { @@ -134,9 +121,8 @@ public class ConstructorConfiguration { public boolean matches(Constructor aObject) { if (!publicOnly) { return true; - } else { - return Modifier.isPublic(aObject.getModifiers()); } + return Modifier.isPublic(aObject.getModifiers()); } }); @@ -146,8 +132,8 @@ public class ConstructorConfiguration { } } - final int max2 = max; - List> ctors = checked; + final int max2 = max; + List> ctors = checked; List> longest = new ArrayList>(); CollectionFilter.filter(ctors, longest, new Condition>() { @@ -184,12 +170,12 @@ public class ConstructorConfiguration { /** * Creates the object in the given scope. - * - * @param aScope Scope containing required interfaces for this object. - * + * + * @param aScope + * Scope containing required interfaces for this object. + * * @return object. - * - * @throws SystemAssemblyException DOCUMENT ME! + * */ public Object create(Scope aScope) { Object[] valueArray = values.values(aScope); @@ -197,8 +183,8 @@ public class ConstructorConfiguration { try { return getConstructor().newInstance(valueArray); } catch (Exception e) { - throw new SystemAssemblyException("Could not construct object " - + getConstructor() + " " + Arrays.asList(valueArray), e); + throw new SystemAssemblyException("Could not construct object " + + getConstructor() + " " + Arrays.asList(valueArray), e); } }