GSA-483: Bug in GATKdocs for Enums
-- Fixed to no long show constants in enums as constant values in the gatkdocs
This commit is contained in:
parent
3253fc216b
commit
6a2862e8bc
|
|
@ -584,20 +584,39 @@ public class GenericDocumentationHandler extends DocumentedGATKFeatureHandler {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Requires("enumClass.isEnum()")
|
@Requires("enumClass.isEnum()")
|
||||||
private List<Map<String, Object>> docForEnumArgument(Class enumClass) {
|
private List<Map<String, Object>> docForEnumArgument(final Class enumClass) {
|
||||||
ClassDoc doc = this.getDoclet().getClassDocForClass(enumClass);
|
final ClassDoc doc = this.getDoclet().getClassDocForClass(enumClass);
|
||||||
if (doc == null) // || ! doc.isEnum() )
|
if ( doc == null )
|
||||||
throw new RuntimeException("Tried to get docs for enum " + enumClass + " but got null instead");
|
throw new RuntimeException("Tried to get docs for enum " + enumClass + " but got null instead");
|
||||||
|
|
||||||
List<Map<String, Object>> bindings = new ArrayList<Map<String, Object>>();
|
final Set<String> enumConstantFieldNames = enumConstantsNames(enumClass);
|
||||||
for (final FieldDoc field : doc.fields(false)) {
|
|
||||||
bindings.add(
|
final List<Map<String, Object>> bindings = new ArrayList<Map<String, Object>>();
|
||||||
new HashMap<String, Object>() {{
|
for (final FieldDoc fieldDoc : doc.fields(false)) {
|
||||||
put("name", field.name());
|
if (enumConstantFieldNames.contains(fieldDoc.name()) )
|
||||||
put("summary", field.commentText());
|
bindings.add(
|
||||||
}});
|
new HashMap<String, Object>() {{
|
||||||
|
put("name", fieldDoc.name());
|
||||||
|
put("summary", fieldDoc.commentText());
|
||||||
|
}});
|
||||||
}
|
}
|
||||||
|
|
||||||
return bindings;
|
return bindings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the name of the fields that are enum constants according to reflection
|
||||||
|
*
|
||||||
|
* @return a non-null set of fields that are enum constants
|
||||||
|
*/
|
||||||
|
private Set<String> enumConstantsNames(final Class enumClass) {
|
||||||
|
final Set<String> enumConstantFieldNames = new HashSet<String>();
|
||||||
|
|
||||||
|
for ( final Field field : enumClass.getFields() ) {
|
||||||
|
if ( field.isEnumConstant() )
|
||||||
|
enumConstantFieldNames.add(field.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
return enumConstantFieldNames;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue