in src/main/java/org/apache/sling/hapi/client/forms/internal/FormValues.java [54:82]
private FormValues build() {
for (Element input : form.select("button, input, select, textarea")) {
String type = input.attr("type");
if (input.hasAttr("disabled")) continue;
if (input.tagName().equalsIgnoreCase("button") && !type.equals("submit")) continue;
if (input.tagName().equalsIgnoreCase("input") && (type.equals("button") || type.equals("reset"))) continue;
if (type.equals("checkbox") && input.hasAttr("checked")) continue;
if (type.equals("radio") && input.hasAttr("checked")) continue;
if (!type.equals("image") && input.attr("name").length() == 0) continue;
if (input.parents().is("datalist")) continue;
if (type.equals("image") || type.equals("file")) continue; // don't support files for now
String name = input.attr("name");
if (input.tagName().equalsIgnoreCase("select")) {
for (Element o : input.select("option[selected]")) {
if (o.hasAttr("disabled")) continue;
list.add(name, new BasicNameValuePair(name, o.val()));
}
} else if (type.equals("checkbox") || type.equals("radio")) {
String value = input.hasAttr("value") ? input.val() : "on";
list.add(name, new BasicNameValuePair(name, value));
} else {
list.add(name, new BasicNameValuePair(name, input.val()));
}
}
return this;
}