in client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java [723:926]
private IChoiceRenderer<SearchClause.Comparator> getComparatorRender(final IModel<SearchClause> clause) {
return new IChoiceRenderer<>() {
private static final long serialVersionUID = -9086043750227867686L;
@Override
public Object getDisplayValue(final SearchClause.Comparator object) {
if (clause == null || clause.getObject() == null || clause.getObject().getType() == null) {
return object.toString();
}
String display;
switch (clause.getObject().getType()) {
case ATTRIBUTE:
switch (object) {
case IS_NULL:
display = "NULL";
break;
case IS_NOT_NULL:
display = "NOT NULL";
break;
case EQUALS:
display = "==";
break;
case NOT_EQUALS:
display = "!=";
break;
case LESS_THAN:
display = "<";
break;
case LESS_OR_EQUALS:
display = "<=";
break;
case GREATER_THAN:
display = ">";
break;
case GREATER_OR_EQUALS:
display = ">=";
break;
default:
display = StringUtils.EMPTY;
}
break;
case GROUP_MEMBERSHIP:
switch (object) {
case EQUALS:
display = "IN";
break;
case NOT_EQUALS:
display = "NOT IN";
break;
default:
display = StringUtils.EMPTY;
}
break;
case GROUP_MEMBER:
switch (object) {
case EQUALS:
display = "WITH";
break;
case NOT_EQUALS:
display = "WITHOUT";
break;
default:
display = StringUtils.EMPTY;
}
break;
case AUX_CLASS:
case ROLE_MEMBERSHIP:
case RESOURCE:
switch (object) {
case EQUALS:
display = "HAS";
break;
case NOT_EQUALS:
display = "HAS NOT";
break;
default:
display = StringUtils.EMPTY;
}
break;
case RELATIONSHIP:
switch (object) {
case IS_NOT_NULL:
display = "EXIST";
break;
case IS_NULL:
display = "NOT EXIST";
break;
case EQUALS:
display = "WITH";
break;
case NOT_EQUALS:
display = "WITHOUT";
break;
default:
display = StringUtils.EMPTY;
}
break;
case CUSTOM:
display = customizer.comparatorDisplayValue(object);
break;
default:
display = object.toString();
}
return display;
}
@Override
public String getIdValue(final SearchClause.Comparator object, final int index) {
return getDisplayValue(object).toString();
}
@Override
public SearchClause.Comparator getObject(
final String id, final IModel<? extends List<? extends SearchClause.Comparator>> choices) {
if (id == null) {
return SearchClause.Comparator.EQUALS;
}
final SearchClause.Comparator comparator;
switch (id) {
case "HAS":
case "IN":
case "WITH":
comparator = SearchClause.Comparator.EQUALS;
break;
case "HAS NOT":
case "NOT IN":
case "WITHOUT":
comparator = SearchClause.Comparator.NOT_EQUALS;
break;
case "NULL":
case "NOT EXIST":
comparator = SearchClause.Comparator.IS_NULL;
break;
case "NOT NULL":
case "EXIST":
comparator = SearchClause.Comparator.IS_NOT_NULL;
break;
case "==":
comparator = SearchClause.Comparator.EQUALS;
break;
case "!=":
comparator = SearchClause.Comparator.NOT_EQUALS;
break;
case "<":
comparator = SearchClause.Comparator.LESS_THAN;
break;
case "<=":
comparator = SearchClause.Comparator.LESS_OR_EQUALS;
break;
case ">":
comparator = SearchClause.Comparator.GREATER_THAN;
break;
case ">=":
comparator = SearchClause.Comparator.GREATER_OR_EQUALS;
break;
default:
// EQUALS to be used as default value
comparator = customizer.comparatorGetObject(id).orElse(SearchClause.Comparator.EQUALS);
break;
}
return comparator;
}
};
}