List<VariableElement> fieldElements = ElementFilter.fieldsIn(classElement.getEnclosedElements());
if (fieldElements.isEmpty()) {
break;
}
for (VariableElement fieldElement : fieldElements) {
UriParam param = fieldElement.getAnnotation(UriParam.class);
String fieldName = fieldElement.getSimpleName().toString();
if (param != null) {
String name = param.name();
if (isNullOrEmpty(name)) {
name = fieldName;
}
name = prefix + name;
String defaultValue = param.defaultValue();
String defaultValueNote = param.defaultValueNote();
// if the field type is a nested parameter then iterate through its fields
TypeMirror fieldType = fieldElement.asType();
String fieldTypeName = fieldType.toString();
TypeElement fieldTypeElement = findTypeElement(roundEnv, fieldTypeName);