// 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) {
logger.info("Reader: Attributes on simple types are not supported yet!");
RuntimeValuePropertyInfo propv = (RuntimeValuePropertyInfo) prop;
ElementParserBuilder builder2 = (ElementParserBuilder) classBuilder.newState();
JVar var = builder2.passParentVariable(beanVar);
handlePropertyElement(builder2, var, beanClass, propv, propv.getTarget().getTypeName(),
true, propv.getTarget());
} else {
logger.info("(JAXB Reader) Cannot yet map property " + prop.getName()