} else if (prop instanceof RuntimeReferencePropertyInfo) {
// Handle a reference to an <element> or choice of elements
RuntimeReferencePropertyInfo propRef = (RuntimeReferencePropertyInfo) prop;
for (RuntimeElement re : propRef.getElements()) {
RuntimeElementInfo rei = (RuntimeElementInfo) re;
ElementParserBuilder elBuilder = classBuilder.expectElement(rei.getElementName());
JVar beanVar2 = elBuilder.passParentVariable(beanVar);
ElementParserBuilder objBuilder = ref2Parser.get(rei);
if (objBuilder == null) {
createRefParser(rootReader, rei.getElementName(), rei);
objBuilder = ref2Parser.get(rei);
}
JVar retVar = elBuilder.call(model._ref(rei.getType()), "_ret", objBuilder);
elBuilder.getBody()._return(retVar);
doSet(elBuilder.getBody().getBlock(), beanVar2, beanClass, propRef, retVar);
}
} else if (prop instanceof RuntimeValuePropertyInfo) {