private void appendReturnTypeFacets(final XMLStreamWriter writer, final EdmReturnType returnType)
     throws XMLStreamException {
   if (!returnType.isNullable()) {
     writer.writeAttribute(XML_NULLABLE, "" + returnType.isNullable());
   }
   if (returnType.getMaxLength() != null) {
     writer.writeAttribute(XML_MAX_LENGTH, "" + returnType.getMaxLength());
   }
   if (returnType.getPrecision() != null) {
     writer.writeAttribute(XML_PRECISION, "" + returnType.getPrecision());
   }
   if (returnType.getScale() != null) {
     writer.writeAttribute(XML_SCALE, "" + returnType.getScale());
   }
 }
  private void appendOperationReturnType(final XMLStreamWriter writer, final EdmOperation operation)
      throws XMLStreamException {
    EdmReturnType returnType = operation.getReturnType();
    if (returnType != null) {
      writer.writeEmptyElement(XML_RETURN_TYPE);
      String returnTypeFqnString;
      if (EdmTypeKind.PRIMITIVE.equals(returnType.getType().getKind())) {
        returnTypeFqnString = getFullQualifiedName(returnType.getType(), returnType.isCollection());
      } else {
        returnTypeFqnString =
            getAliasedFullQualifiedName(returnType.getType(), returnType.isCollection());
      }
      writer.writeAttribute(XML_TYPE, returnTypeFqnString);

      appendReturnTypeFacets(writer, returnType);
    }
  }