@SuppressWarnings("unchecked")
  protected void writeLinkInline(
      StreamWriter writer,
      Metadata metadata,
      Link linkToInline,
      RESTResource embeddedResource,
      String href,
      String baseUri,
      String absoluteId,
      String updated) {

    writer.startElement(new QName(m, "inline", "m"));
    if (embeddedResource instanceof CollectionResource) {
      CollectionResource<Entity> collectionResource = (CollectionResource<Entity>) embeddedResource;
      Collection<EntityResource<Entity>> entities = collectionResource.getEntities();

      if (entities != null && !entities.isEmpty()) {
        writer.startFeed();
        writer.writeTitle(Type.TEXT, linkToInline.getTitle());
        writer.writeId(baseUri + href);
        writer.writeUpdated(updated);
        writer.startLink(href, "self");
        writer.writeAttribute("title", linkToInline.getTitle());
        writer.endLink();

        for (EntityResource<Entity> entityResource : entities) {
          writeEntityResource(writer, entityResource, baseUri, absoluteId, updated);
        }
        writer.endFeed();
      }
    } else if (embeddedResource instanceof EntityResource) {
      EntityResource<Entity> entityResource = (EntityResource<Entity>) embeddedResource;
      writeEntityResource(writer, entityResource, baseUri, absoluteId, updated);
    } else {
      throw new RuntimeException("Unknown OLink type " + linkToInline.getClass());
    }
    writer.endElement(); // end inline
  }