@Override public void serialize( XMLStreamWriter writer, ReturnableElement returnType ) throws XMLStreamException { switch ( returnType ) { case brief: serializeBrief( writer ); break; case summary: serializeSummary( writer ); break; case full: XMLStreamReader xmlStream = adapter.getRootElement().getXMLStreamReader(); XMLStreamUtils.skipStartDocument( xmlStream ); XMLAdapter.writeElement( writer, xmlStream ); break; default: throw new IllegalArgumentException( "Unexpected return type '" + returnType + "'." ); } }