}
private static void addResponseDoc( MethodDoc methodDoc,
final MethodDocType methodDocType ) {
final ResponseDocType responseDoc = new ResponseDocType();
final Tag returnTag = getSingleTagOrNull( methodDoc, "return" );
if ( returnTag != null ) {
responseDoc.setReturnDoc( returnTag.text() );
}
final Tag[] responseParamTags = methodDoc.tags( "response.param" );
for ( Tag responseParamTag : responseParamTags ) {
// LOG.info( "Have responseparam tag: " + print( responseParamTag ) );
final WadlParamType wadlParam = new WadlParamType();
for ( Tag inlineTag : responseParamTag.inlineTags() ) {
final String tagName = inlineTag.name();
final String tagText = inlineTag.text();
/* skip empty tags
*/
if ( isEmpty( tagText ) ) {
if ( LOG.isLoggable( Level.FINE ) ) {
LOG.fine( "Skipping empty inline tag of @response.param in method " +
methodDoc.qualifiedName() + ": " + tagName );
}
continue;
}
if ( "@name".equals( tagName ) ) {
wadlParam.setName( tagText );
}
else if ( "@style".equals( tagName ) ) {
wadlParam.setStyle( tagText );
}
else if ( "@type".equals( tagName ) ) {
wadlParam.setType( QName.valueOf( tagText ) );
}
else if ( "@doc".equals( tagName ) ) {
wadlParam.setDoc( tagText );
}
else {
LOG.warning( "Unknown inline tag of @response.param in method " +
methodDoc.qualifiedName() + ": " + tagName +
" (value: " + tagText + ")" );
}
}
responseDoc.getWadlParams().add( wadlParam );
}
final Map<String, List<Tag>> tagsByStatus = getResponseRepresentationTags( methodDoc );
for ( Entry<String, List<Tag>> entry : tagsByStatus.entrySet() ) {
final RepresentationDocType representationDoc = new RepresentationDocType();
representationDoc.setStatus( Long.valueOf( entry.getKey() ) );
for ( Tag tag : entry.getValue() ) {
if ( tag.name().endsWith( ".qname" ) ) {
representationDoc.setElement( QName.valueOf( tag.text() ) );
}
else if ( tag.name().endsWith( ".mediaType" ) ) {
representationDoc.setMediaType( tag.text() );
}
else if ( tag.name().endsWith( ".example" ) ) {
representationDoc.setExample( getSerializedExample( tag ) );
}
else if ( tag.name().endsWith( ".doc" ) ) {
representationDoc.setDoc( tag.text() );
}
else {
LOG.warning( "Unknown response representation tag " + tag.name() );
}
}
responseDoc.getRepresentations().add( representationDoc );
}
methodDocType.setResponseDoc( responseDoc );
}