public String[] names() { if (names==null) names = ClassDescriptor.loadParameterNames(method); return names; } }
@Override public Set<Attribute<T,?>> describe() { final Set<Attribute<T,?>> attributes = super.describe(); final Constructor constructor = getDataBoundConstructor(target); if (constructor != null) { final Parameter[] parameters = constructor.getParameters(); final String[] names = ClassDescriptor.loadParameterNames(constructor); for (int i = 0; i < parameters.length; i++) { final Parameter p = parameters[i]; final Attribute a = createAttribute(names[i], TypePair.of(p)); if (a == null) continue; attributes.add(a); } } return attributes; }
private T tryConstructor(Constructor<T> constructor, Mapping config, ConfigurationContext context) throws ConfiguratorException { final Parameter[] parameters = constructor.getParameters(); final String[] names = ClassDescriptor.loadParameterNames(constructor); Object[] args = new Object[names.length];
final String[] names = ClassDescriptor.loadParameterNames(constructor); final Attribute[] attributes = new Attribute[parameters.length]; final Object[] args = new Object[parameters.length];
public String[] names() { if (names==null) names = ClassDescriptor.loadParameterNames(method); return names; } }
public String[] names() { if (names==null) names = ClassDescriptor.loadParameterNames(method); return names; } }
public final String[] getParameterNames() { if(names==null) names = ClassDescriptor.loadParameterNames(m); return names; }
public final String[] getParameterNames() { if(names==null) names = ClassDescriptor.loadParameterNames(m); return names; }
public String[] names() { if (names==null) names = ClassDescriptor.loadParameterNames(method); return names; } }
public String[] names() { if (names == null) { names = ClassDescriptor.loadParameterNames(method); } return names; } }
final String[] getParameterNames() { if(names==null) names = ClassDescriptor.loadParameterNames(m); return names; }
public String[] names() { if (names==null) names = ClassDescriptor.loadParameterNames(method); return names; } }
throw new NoStaplerConstructorException("There's no @DataBoundConstructor on any constructor of " + clazz); String[] names = ClassDescriptor.loadParameterNames(dbc); if (names.length==dbc.getParameterTypes().length) return names;
throw new NoStaplerConstructorException("There's no @DataBoundConstructor on any constructor of " + clazz); String[] names = ClassDescriptor.loadParameterNames(dbc); if (names.length==dbc.getParameterTypes().length) return names;
/** * Works like {@link #assertEqualBeans(Object, Object, String)} but figure out the properties * via {@link org.kohsuke.stapler.DataBoundConstructor} and {@link org.kohsuke.stapler.DataBoundSetter} */ public void assertEqualDataBoundBeans(Object lhs, Object rhs) throws Exception { if (lhs==null && rhs==null) return; if (lhs==null) fail("lhs is null while rhs="+rhs); if (rhs==null) fail("rhs is null while lhs="+lhs); Constructor<?> lc = findDataBoundConstructor(lhs.getClass()); Constructor<?> rc = findDataBoundConstructor(rhs.getClass()); assertThat("Data bound constructor mismatch. Different type?", (Constructor)rc, is((Constructor)lc)); String[] names = ClassDescriptor.loadParameterNames(lc); Class<?>[] types = lc.getParameterTypes(); assertThat(types.length, is(names.length)); assertEqualProperties(lhs, rhs, names, types); Map<String, Class<?>> lprops = extractDataBoundSetterProperties(lhs.getClass()); Map<String, Class<?>> rprops = extractDataBoundSetterProperties(rhs.getClass()); assertThat("Data bound setters mismatch. Different type?", lprops, is(rprops)); List<String> setterNames = new ArrayList<String>(); List<Class<?>> setterTypes = new ArrayList<Class<?>>(); for (Map.Entry<String, Class<?>> e : lprops.entrySet()) { setterNames.add(e.getKey()); setterTypes.add(e.getValue()); } assertEqualProperties(lhs, rhs, setterNames.toArray(new String[0]), setterTypes.toArray(new Class<?>[0])); }
@Test public void loadConstructorParam() throws Exception { assertEquals(0,ClassDescriptor.loadParameterNames(C.class.getConstructor()).length); String[] names = ClassDescriptor.loadParameterNames(C.class.getConstructor(int.class, int.class, String.class)); assertEquals("[a, b, x]",Arrays.asList(names).toString()); }
@Override public Set<Attribute<T,?>> describe() { final Set<Attribute<T,?>> attributes = super.describe(); final Constructor constructor = getDataBoundConstructor(target); if (constructor != null) { final Parameter[] parameters = constructor.getParameters(); final String[] names = ClassDescriptor.loadParameterNames(constructor); for (int i = 0; i < parameters.length; i++) { final Parameter p = parameters[i]; final Attribute a = createAttribute(names[i], TypePair.of(p)); if (a == null) continue; attributes.add(a); } } return attributes; }
String[] names = ClassDescriptor.loadParameterNames(lc); Class<?>[] types = lc.getParameterTypes(); assertEquals(names.length,types.length);
String[] names = ClassDescriptor.loadParameterNames(lc); Class<?>[] types = lc.getParameterTypes(); assertEquals(names.length,types.length);
final String[] names = ClassDescriptor.loadParameterNames(constructor); final Attribute[] attributes = new Attribute[parameters.length]; final Object[] args = new Object[parameters.length];