private static void writeAnnotationAttributes(EdmItem item, XMLWriter2 writer) { if (null != item.getAnnotations()) { for (NamespacedAnnotation<?> a : item.getAnnotations()) { if (a instanceof EdmAnnotationAttribute) { writer.writeAttribute( new QName2(a.getNamespace().getUri(), a.getName(), a.getNamespace().getPrefix()), a.getValue() == null ? "" : a.getValue().toString()); } } } }
private static void writeAnnotationElements(EdmItem item, XMLWriter2 writer) { if (null != item.getAnnotations()) { for (NamespacedAnnotation<?> a : item.getAnnotations()) { if (a instanceof EdmAnnotationElement) { // TODO: please don't throw an exception here. // this totally breaks ODataConsumer even thought it doesn't rely // on annotations. A no-op is a interim approach that allows work // to proceed by those using queryable metadata to access annotations. // throw new UnsupportedOperationException("Implement element annotations"); } } } }
private static void writeDocumentation(EdmItem item, XMLWriter2 writer) { EdmDocumentation doc = item.getDocumentation(); if (null != doc && (null != doc.getSummary() || null != doc.getLongDescription())) { QName2 d = new QName2(edm, "Documentation"); writer.startElement(d); { if (null != doc.getSummary()) { QName2 s = new QName2(edm, "Summary"); writer.startElement(s); writer.writeText(doc.getSummary()); writer.endElement(s.getLocalPart()); } if (null != doc.getLongDescription()) { QName2 s = new QName2(edm, "LongDescription"); writer.startElement(s); writer.writeText(doc.getLongDescription()); writer.endElement(s.getLocalPart()); } } writer.endElement(d.getLocalPart()); } }