public static NakedObjectActionParameter[] GetParameters(this ActionWrapper action)
        {
            NakedObjectSpecification[] parameterTypes = action.getParameterTypes();
            int index = 0;

            return(parameterTypes.Select(nakedObjectSpecification => new NakedObjectActionParameter(GetShortName(nakedObjectSpecification), index++, nakedObjectSpecification, action, null, null)).ToArray());
        }
        public static NakedObjectActionParameter[] GetParameters(this ActionWrapper action, NakedReference obj)
        {
            var parms = new List <NakedObjectActionParameter>();

            NakedObjectSpecification[] parameterTypes = action.getParameterTypes();
            int index = 0;
            ActionParameterSet set = action.getParameterSet(obj);

            foreach (NakedObjectSpecification nakedObjectSpecification in parameterTypes)
            {
                string   name    = (set == null ? GetShortName(nakedObjectSpecification) : set.getParameterLabels()[index] ?? GetShortName(nakedObjectSpecification));
                object[] choices = set == null ? null : set.getOptions()[index];
                object   dflt    = set == null ? null : set.getDefaultParameterValues()[index];

                parms.Add(new NakedObjectActionParameter(name, index++, nakedObjectSpecification, action, choices, dflt));
            }

            return(parms.ToArray());
        }