@NotNull
public static UIInput createInputForSimpleProperty(PropertyDefinitionSimple propertyDefinitionSimple,
PropertySimple propertySimple, ValueExpression propertyValueExpression, Integer listIndex,
boolean isGroupConfig, boolean configReadOnly, boolean configFullyEditable, boolean prevalidate, TemplateEngine templateEngine) {
UIInput input = createInput(propertyDefinitionSimple);
if (propertySimple != null)
addTitleAttribute(input, propertySimple.getStringValue());
boolean isUnset = isUnset(propertyDefinitionSimple.isRequired(), propertySimple, isGroupConfig);
boolean isReadOnly = isReadOnly(propertyDefinitionSimple.isReadOnly(), propertyDefinitionSimple.isRequired(),
propertySimple, configReadOnly, configFullyEditable);
String propertyId = PropertyIdGeneratorUtility.getIdentifier(propertySimple, listIndex);
input.setId(propertyId);
input.setValueExpression("value", propertyValueExpression);
FacesComponentUtility.setUnset(input, isUnset);
FacesComponentUtility.setReadonly(input, isReadOnly);
addValidatorsAndConverter(input, propertyDefinitionSimple, configReadOnly, templateEngine);