diff options
Diffstat (limited to 'src/main/java/com/beust/jcommander/WrappedParameter.java')
-rw-r--r-- | src/main/java/com/beust/jcommander/WrappedParameter.java | 72 |
1 files changed, 40 insertions, 32 deletions
diff --git a/src/main/java/com/beust/jcommander/WrappedParameter.java b/src/main/java/com/beust/jcommander/WrappedParameter.java index f4e7d56..e49245a 100644 --- a/src/main/java/com/beust/jcommander/WrappedParameter.java +++ b/src/main/java/com/beust/jcommander/WrappedParameter.java @@ -1,5 +1,6 @@ package com.beust.jcommander; +import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -7,68 +8,81 @@ import java.lang.reflect.Method; * Encapsulates the operations common to @Parameter and @DynamicParameter */ public class WrappedParameter { - private Parameter m_parameter; - private DynamicParameter m_dynamicParameter; + private Parameter parameter; + private DynamicParameter dynamicParameter; public WrappedParameter(Parameter p) { - m_parameter = p; + parameter = p; } public WrappedParameter(DynamicParameter p) { - m_dynamicParameter = p; + dynamicParameter = p; } public Parameter getParameter() { - return m_parameter; + return parameter; } public DynamicParameter getDynamicParameter() { - return m_dynamicParameter; + return dynamicParameter; } public int arity() { - return m_parameter != null ? m_parameter.arity() : 1; + return parameter != null ? parameter.arity() : 1; } public boolean hidden() { - return m_parameter != null ? m_parameter.hidden() : m_dynamicParameter.hidden(); + return parameter != null ? parameter.hidden() : dynamicParameter.hidden(); } public boolean required() { - return m_parameter != null ? m_parameter.required() : m_dynamicParameter.required(); + return parameter != null ? parameter.required() : dynamicParameter.required(); } public boolean password() { - return m_parameter != null ? m_parameter.password() : false; + return parameter != null ? parameter.password() : false; } public String[] names() { - return m_parameter != null ? m_parameter.names() : m_dynamicParameter.names(); + return parameter != null ? parameter.names() : dynamicParameter.names(); } public boolean variableArity() { - return m_parameter != null ? m_parameter.variableArity() : false; + return parameter != null ? parameter.variableArity() : false; } - public Class<? extends IParameterValidator> validateWith() { - return m_parameter != null ? m_parameter.validateWith() : m_dynamicParameter.validateWith(); + public Class<? extends IParameterValidator>[] validateWith() { + return parameter != null ? parameter.validateWith() : dynamicParameter.validateWith(); } - public Class<? extends IValueValidator> validateValueWith() { - return m_parameter != null - ? m_parameter.validateValueWith() - : m_dynamicParameter.validateValueWith(); + public Class<? extends IValueValidator>[] validateValueWith() { + return parameter != null + ? parameter.validateValueWith() + : dynamicParameter.validateValueWith(); } public boolean echoInput() { - return m_parameter != null ? m_parameter.echoInput() : false; + return parameter != null ? parameter.echoInput() : false; } public void addValue(Parameterized parameterized, Object object, Object value) { - if (m_parameter != null) { - parameterized.set(object, value); + try { + addValue(parameterized, object, value, null); + } catch (IllegalAccessException e) { + throw new ParameterException("Couldn't set " + object + " to " + value, e); + } + } + + public void addValue(Parameterized parameterized, Object object, Object value, Field field) + throws IllegalAccessException { + if (parameter != null) { + if (field != null) { + field.set(object, value); + } else { + parameterized.set(object, value); + } } else { - String a = m_dynamicParameter.assignment(); + String a = dynamicParameter.assignment(); String sv = value.toString(); int aInd = sv.indexOf(a); @@ -86,13 +100,7 @@ public class WrappedParameter { Method m; m = findPut(parameterized.getType()); m.invoke(parameterized.get(object), key, value); - } catch (SecurityException e) { - e.printStackTrace(); - } catch(IllegalAccessException e) { - e.printStackTrace(); - } catch(InvocationTargetException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { + } catch (SecurityException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { e.printStackTrace(); } } @@ -102,14 +110,14 @@ public class WrappedParameter { } public String getAssignment() { - return m_dynamicParameter != null ? m_dynamicParameter.assignment() : ""; + return dynamicParameter != null ? dynamicParameter.assignment() : ""; } public boolean isHelp() { - return m_parameter != null && m_parameter.help(); + return parameter != null && parameter.help(); } public boolean isNonOverwritableForced() { - return m_parameter != null && m_parameter.forceNonOverwritable(); + return parameter != null && parameter.forceNonOverwritable(); } } |