RandomValueTypeVisitor visitor = descend();
LinkedList<IValue> values = new LinkedList<IValue>();
for (int i = 0; i < type.getArity(); i++) {
Type fieldType = type.getFieldType(i);
IValue argument = visitor.generate(fieldType);
if (argument == null) {
return null;
/*
* Het is onmogelijk om de constructor te bouwen als ������n
* argument null is.
*/
}
values.add(argument);
}
IValue[] params = values.toArray(new IValue[values.size()]);
if (stRandom.nextBoolean() && type.getKeywordParameterTypes().getArity() > 0) {
Map<String, IValue> kwParams = new HashMap<>();
for (String kw: type.getKeywordParameters()) {
if (stRandom.nextBoolean()) continue;
Type fieldType = type.getKeywordParameterType(kw);
IValue argument = visitor.generate(fieldType);
if (argument == null) {
return null;
}
kwParams.put(kw, argument);
}