X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fadapters%2FParameterValues.java;h=2f6f12de0c0f3d6da71f5512e54f44b138e28684;hb=49ce7cb8387601982d5e6ef186ce206d38f6e3d7;hp=4b561c3e2f9fceddfc3466069b2657ce48d83dc7;hpb=ddd261f331280640c5b53c7128230b629ebcd268;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/adapters/ParameterValues.java b/system/general/src/main/java/org/wamblee/system/adapters/ParameterValues.java index 4b561c3e..2f6f12de 100644 --- a/system/general/src/main/java/org/wamblee/system/adapters/ParameterValues.java +++ b/system/general/src/main/java/org/wamblee/system/adapters/ParameterValues.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. @@ -20,37 +20,29 @@ import org.wamblee.system.core.RequiredInterface; import org.wamblee.system.core.Scope; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; - /** - * Represents parameter values for a method or constructor and allows for - * the configuration of how these values are retrieved. - * + * Represents parameter values for a method or constructor and allows for the + * configuration of how these values are retrieved. + * * @author Erik Brakkee */ public class ParameterValues { - /** - * DOCUMENT ME! - */ private String[] names; - /** - * DOCUMENT ME! - */ private Class[] types; - /** - * DOCUMENT ME! - */ private ValueProvider[] values; -/** - * 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. - */ + /** + * 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 ParameterValues(Class[] aTypes) { names = new String[aTypes.length]; @@ -62,51 +54,54 @@ public class ParameterValues { resetValues(); } -/** - * Constructs the configuration. By default no constructor is selected and - * one of {@link #select(Class...)} or - * {@link #greedy()} must be called. - * @param aNames Names of the arguments. - * @param aClass Class to construct. + /** + * Constructs the configuration. By default no constructor is selected and + * one of {@link #select(Class...)} or {@link #greedy()} must be called. + * + * @param aNames + * Names of the arguments. + * @param aClass + * Class to construct. */ public ParameterValues(String[] aNames, Class[] aTypes) { assert aNames.length == aTypes.length; - names = aNames; - types = aTypes; + names = aNames; + types = Arrays.copyOf(aTypes, aTypes.length); resetValues(); } /** * The types of the parameter values. - * + * * @return Types. */ public Class[] getTypes() { - return types; + return Arrays.copyOf(types, types.length); } /** - * Sets argument i to be optional, meaning that null is allowed to - * be passed in. - * - * @param aArg Argument to set. - * - * @return DOCUMENT ME! + * Sets argument i to be optional, meaning that null is allowed to be passed + * in. + * + * @param aArg + * Argument to set. + * */ public ParameterValues setOptional(int aArg) { - values[aArg] = new RequiredInterfaceProvider(new DefaultRequiredInterface( - "arg" + aArg, types[aArg], true)); + values[aArg] = new RequiredInterfaceProvider( + new DefaultRequiredInterface("arg" + aArg, types[aArg], true)); return this; } /** * Sets the argument i to a fixed value. - * - * @param aArg Argument to set. - * @param aValue Value. - * - * @return DOCUMENT ME! + * + * @param aArg + * Argument to set. + * @param aValue + * Value. + * */ public ParameterValues setValue(int aArg, Object aValue) { values[aArg] = new FixedValueProvider(aValue); @@ -121,15 +116,15 @@ public class ParameterValues { values = new ValueProvider[types.length]; for (int i = 0; i < values.length; i++) { - values[i] = new RequiredInterfaceProvider(new DefaultRequiredInterface( - names[i], types[i])); + values[i] = new RequiredInterfaceProvider( + new DefaultRequiredInterface(names[i], types[i])); } } /** - * Gets the required interfaces to provide values that are not - * provided in another way. - * + * Gets the required interfaces to provide values that are not provided in + * another way. + * * @return Required interfaces. */ public List getRequiredInterfaces() { @@ -147,9 +142,10 @@ public class ParameterValues { /** * Returns the values to use in the given scope. - * - * @param aScope Scope within which to retrieve the values. - * + * + * @param aScope + * Scope within which to retrieve the values. + * * @return Values. */ public Object[] values(Scope aScope) {