ldap.addConstructorParameter(Map.class.getName(), map);
LDAPFactory lf = (LDAPFactory)instantiate(controller, ldap.getBeanMetaData());
assertNotNull(lf);
// simple one
AbstractValueFactoryMetaData vfmd1 = new AbstractValueFactoryMetaData("ldap", "getValue");
List<ParameterMetaData> parameters1 = new ArrayList<ParameterMetaData>();
vfmd1.setParameters(parameters1);
parameters1.add(new AbstractParameterMetaData(String.class.getName(), "foo.bar.key"));
BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder("PropHolder", PropHolder.class.getName());
builder.addConstructorParameter(String.class.getName(), vfmd1);
builder.addPropertyMetaData("value", vfmd1);
AbstractListMetaData listMD = new AbstractListMetaData();
listMD.add(vfmd1);
// default from 2nd param
AbstractValueFactoryMetaData vfmd2 = new AbstractValueFactoryMetaData("ldap", "getValue");
List<ParameterMetaData> parameters2 = new ArrayList<ParameterMetaData>();
vfmd2.setParameters(parameters2);
parameters2.add(new AbstractParameterMetaData(String.class.getName(), "foo.bar.key"));
parameters2.add(new AbstractParameterMetaData(String.class.getName(), "qaz"));
listMD.add(vfmd2);
// with transformer
AbstractValueFactoryMetaData vfmd3 = new AbstractValueFactoryMetaData("ldap", "getValue");
List<ParameterMetaData> parameters3 = new ArrayList<ParameterMetaData>();
vfmd3.setParameters(parameters3);
parameters3.add(new AbstractParameterMetaData(String.class.getName(), "xyz.key"));
parameters3.add(new AbstractParameterMetaData(String.class.getName(), "xyz"));
// instantiate transformer
BeanMetaDataBuilder tranformer = BeanMetaDataBuilderFactory.createBuilder("t", TrimTransformer.class.getName());
assertNotNull(instantiate(controller, tranformer.getBeanMetaData()));
parameters3.add(new AbstractParameterMetaData(Transformer.class.getName(), tranformer.getBeanMetaData()));
listMD.add(vfmd3);
// null, use default
AbstractValueFactoryMetaData vfmd4 = new AbstractValueFactoryMetaData("ldap", "getValue", "QWERT");
List<ParameterMetaData> parameters4 = new ArrayList<ParameterMetaData>();
vfmd4.setParameters(parameters4);
parameters4.add(new AbstractParameterMetaData(String.class.getName(), "no.such.key"));
listMD.add(vfmd4);
builder.addPropertyMetaData("list", listMD);
return (PropHolder)instantiate(controller, builder.getBeanMetaData());
}