public List<OptionsDescription> describeOptions(OptionsHolder optionsHolder) { Set<Field> fields = findOptionFields(optionsHolder); List<OptionsDescription> optionDescriptions = new ArrayList<>(); for (Field field : fields) { String key = (!EdenUtils.isEmpty(field.getAnnotation(Option.class).value())) ? field.getAnnotation(Option.class).value() : field.getName(); String description = (field.getAnnotation(Description.class) != null && !EdenUtils.isEmpty(field.getAnnotation(Description.class).value())) ? field.getAnnotation(Description.class).value() : ""; optionDescriptions.add(new OptionsDescription(key, field.getType(), description)); } return optionDescriptions; }
public void extractOptions(OptionsHolder optionsHolder, JSONObject options) { Set<Field> fields = findOptionFields(optionsHolder); for (Field field : fields) { String key = (!EdenUtils.isEmpty(field.getAnnotation(Option.class).value())) ? field.getAnnotation(Option.class).value() : field.getName(); if (field.getType().isArray()) { setOptionArray(optionsHolder, field, options, key); } else if (List.class.isAssignableFrom(field.getType())) { setOptionArray(optionsHolder, field, options, key); } else { setOption(optionsHolder, field, options, key); } } }