use of com.sun.tools.xjc.generator.annotation.spec.XmlElementRefWriter in project jaxb-ri by eclipse-ee4j.
the class AbstractField method annotateReference.
private void annotateReference(JAnnotatable field) {
CReferencePropertyInfo rp = (CReferencePropertyInfo) prop;
TODO.prototype();
// this is just a quick hack to get the basic test working
Collection<CElement> elements = rp.getElements();
XmlElementRefWriter refw;
if (elements.size() == 1) {
refw = field.annotate2(XmlElementRefWriter.class);
CElement e = elements.iterator().next();
refw.name(e.getElementName().getLocalPart()).namespace(e.getElementName().getNamespaceURI()).type(e.getType().toType(outline.parent(), IMPLEMENTATION));
refw.required(rp.isRequired());
} else if (elements.size() > 1) {
XmlElementRefsWriter refsw = field.annotate2(XmlElementRefsWriter.class);
for (CElement e : elements) {
refw = refsw.value();
refw.name(e.getElementName().getLocalPart()).namespace(e.getElementName().getNamespaceURI()).type(e.getType().toType(outline.parent(), IMPLEMENTATION));
refw.required(rp.isRequired());
}
}
if (rp.isMixed())
field.annotate(XmlMixed.class);
NClass dh = rp.getDOMHandler();
if (dh != null) {
XmlAnyElementWriter xaew = field.annotate2(XmlAnyElementWriter.class);
xaew.lax(rp.getWildcard().allowTypedObject);
final JClass value = dh.toType(outline.parent(), IMPLEMENTATION);
if (!value.equals(codeModel.ref(W3CDomHandler.class))) {
xaew.value(value);
}
}
}
Aggregations