下面列出了org.springframework.beans.support.MutableSortDefinition#org.apache.wicket.extensions.markup.html.repeater.util.SortParam 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public PagedInfiniteIterator<DetailedEvent> iterator(long first, long count)
{
SortParam sort = getSort();
DetailedEventsManager dem = Locator.getFacade().getDetailedEventsManager();
List<DetailedEvent> deList = dem.getDetailedEvents(trackingParams, new PagingParams(first, count + 1),
new SortingParams(sort.getProperty().toString(), sort.isAscending()));
int numResults = deList.size();
boolean hasNextPage = false;
if (numResults > count)
{
hasNextPage = true;
numResults--;
deList.remove(numResults);
}
return new PagedInfiniteIterator(deList.iterator(), first > 0, hasNextPage, numResults);
}
private SortType getSSSortType() {
SortParam sp = getSort();
if(sp.getProperty().equals(COL_TITLE)){
if(sp.isAscending()) {
return SortType.TITLE_ASC;
}else{
return SortType.TITLE_DESC;
}
}else if(sp.getProperty().equals(COL_TYPE)){
if(sp.isAscending()){
return SortType.TYPE_ASC;
}else{
return SortType.TYPE_DESC;
}
}else if(sp.getProperty().equals(COL_STATUS)){
if(sp.isAscending()){
return SortType.PUBLISHED_ASC;
}else{
return SortType.PUBLISHED_DESC;
}
}else{
return SortType.TITLE_ASC;
}
}
private List<ConnObjectTO> reloadItems(
final String resource,
final String anyType,
final String cookie,
final String fiql) {
Pair<String, List<ConnObjectTO>> items = new ResourceRestClient().searchConnObjects(resource,
anyType,
new ConnObjectTOQuery.Builder().
size(SIZE).
pagedResultsCookie(cookie).
fiql(fiql),
new SortParam<>(ConnIdSpecialName.UID, true));
nextPageCookie = items.getLeft();
return items.getRight();
}
public Pair<String, List<ConnObjectTO>> searchConnObjects(
final String resource,
final String anyTypeKey,
final ConnObjectTOQuery.Builder queryBuilder,
final SortParam<String> sortParam) {
final List<ConnObjectTO> result = new ArrayList<>();
String nextPageResultCookie = null;
PagedConnObjectTOResult list;
try {
if (sortParam != null) {
queryBuilder.orderBy(toOrderBy(sortParam));
}
list = getService(ResourceService.class).searchConnObjects(resource, anyTypeKey, queryBuilder.build());
result.addAll(list.getResult());
nextPageResultCookie = list.getPagedResultsCookie();
} catch (Exception e) {
LOG.error("While listing objects on {} for any type {}", resource, anyTypeKey, e);
}
return Pair.of(nextPageResultCookie, result);
}
@Override
protected IModel<List<RemediationTO>> getLatestAlerts() {
return new ListModel<RemediationTO>() {
private static final long serialVersionUID = 541491929575585613L;
@Override
public List<RemediationTO> getObject() {
List<RemediationTO> updatedRemediations;
if (SyncopeConsoleSession.get().owns(IdMEntitlement.REMEDIATION_LIST)
&& SyncopeConsoleSession.get().owns(IdMEntitlement.REMEDIATION_READ)) {
updatedRemediations = RemediationRestClient.getRemediations(1,
MAX_SIZE, new SortParam<>("instant", true));
} else {
updatedRemediations = List.of();
}
return updatedRemediations;
}
};
}
protected static String toOrderBy(final SortParam<String> sort) {
OrderByClauseBuilder builder = SyncopeClient.getOrderByClauseBuilder();
String property = sort.getProperty();
if (property.indexOf('#') != -1) {
property = property.substring(property.indexOf('#') + 1);
}
if (sort.isAscending()) {
builder.asc(property);
} else {
builder.desc(property);
}
return builder.build();
}
public List<AuditEntry> search(
final String key,
final int page,
final int size,
final AuditElements.EventCategoryType type,
final String category,
final List<String> events,
final AuditElements.Result result,
final SortParam<String> sort) {
AuditQuery query = new AuditQuery.Builder().
entityKey(key).
size(size).
page(page).
type(type).
category(category).
events(events).
result(result).
orderBy(toOrderBy(sort)).
build();
return getService(LoggerService.class).search(query).getResult();
}
public static List<NotificationTaskTO> listNotificationTasks(
final String notification,
final AnyTypeKind anyTypeKind,
final String entityKey,
final int page,
final int size,
final SortParam<String> sort) {
TaskQuery.Builder builder = new TaskQuery.Builder(TaskType.NOTIFICATION);
if (notification != null) {
builder.notification(notification);
}
if (anyTypeKind != null) {
builder.anyTypeKind(anyTypeKind);
}
if (entityKey != null) {
builder.entityKey(entityKey);
}
PagedResult<NotificationTaskTO> list = getService(TaskService.class).
search(builder.page(page).size(size).orderBy(toOrderBy(sort)).build());
return list.getResult();
}
public static String toOrderBy(final SortParam<String> sort) {
OrderByClauseBuilder builder = SyncopeClient.getOrderByClauseBuilder();
String property = sort.getProperty();
if (property.indexOf('#') != -1) {
property = property.substring(property.indexOf('#') + 1);
}
if (sort.isAscending()) {
builder.asc(property);
} else {
builder.desc(property);
}
return builder.build();
}
/**
* Retrieve dyn group memberships.
*/
@Override
protected void reloadDynMemberships() {
GroupFiqlSearchConditionBuilder builder = SyncopeClient.getGroupSearchConditionBuilder();
List<CompleteCondition> conditions = GroupableRelatableTO.class.cast(anyTO).getDynMemberships().
stream().map(membership -> builder.is(Constants.KEY_FIELD_NAME).
equalTo(membership.getGroupKey()).wrap()).
collect(Collectors.toList());
dynMemberships = new ArrayList<>();
if (SyncopeConsoleSession.get().owns(IdRepoEntitlement.GROUP_SEARCH) && !conditions.isEmpty()) {
dynMemberships.addAll(groupRestClient.search(
SyncopeConstants.ROOT_REALM,
builder.or(conditions).query(),
-1,
-1,
new SortParam<>("name", true),
null).stream().map(GroupTO::getName).collect(Collectors.toList()));
}
}
@Override
protected IModel<List<UserRequestForm>> getLatestAlerts() {
return new ListModel<UserRequestForm>() {
private static final long serialVersionUID = -2583290457773357445L;
@Override
public List<UserRequestForm> getObject() {
List<UserRequestForm> updatedForms;
if (SyncopeConsoleSession.get().owns(FlowableEntitlement.USER_REQUEST_FORM_LIST)) {
updatedForms = UserRequestRestClient.getForms(1, MAX_SIZE, new SortParam<>("createTime", true));
} else {
updatedForms = Collections.<UserRequestForm>emptyList();
}
return updatedForms;
}
};
}
@Override
public PagedInfiniteIterator<DetailedEvent> iterator(long first, long count)
{
SortParam sort = getSort();
DetailedEventsManager dem = Locator.getFacade().getDetailedEventsManager();
List<DetailedEvent> deList = dem.getDetailedEvents(trackingParams, new PagingParams(first, count + 1),
new SortingParams(sort.getProperty().toString(), sort.isAscending()));
int numResults = deList.size();
boolean hasNextPage = false;
if (numResults > count)
{
hasNextPage = true;
numResults--;
deList.remove(numResults);
}
return new PagedInfiniteIterator(deList.iterator(), first > 0, hasNextPage, numResults);
}
private SortType getSSSortType() {
SortParam sp = getSort();
if(sp.getProperty().equals(COL_TITLE)){
if(sp.isAscending()) {
return SortType.TITLE_ASC;
}else{
return SortType.TITLE_DESC;
}
}else if(sp.getProperty().equals(COL_TYPE)){
if(sp.isAscending()){
return SortType.TYPE_ASC;
}else{
return SortType.TYPE_DESC;
}
}else if(sp.getProperty().equals(COL_STATUS)){
if(sp.isAscending()){
return SortType.PUBLISHED_ASC;
}else{
return SortType.PUBLISHED_DESC;
}
}else{
return SortType.TITLE_ASC;
}
}
public List<String> getHeader() {
List<String> result = analysisReader.getHeader(analysis);
if (result.isEmpty()) {
return result;
}
SortParam<String> sort = getSort();
if (sort == null) {
setSort(result.get(0), SortOrder.ASCENDING);
List<String> sortProperty = new ArrayList<String>();
sortProperty.add(result.get(0));
analysis.setSortProperty(sortProperty);
List<Boolean> asc = new ArrayList<Boolean>();
asc.add(true);
analysis.setAscending(asc);
}
return result;
}
public static List<StringLabel> get(Locale l, final String search, long start, long count, final SortParam<String> sort) {
List<StringLabel> result = getLabels(l, search);
if (sort != null) {
Collections.sort(result, new LabelComparator(sort));
}
return result.subList((int)start, (int)(start + count > result.size() ? result.size() : start + count));
}
@Override
protected SortableDataProvider<ODocument, String> delegate() {
if(thisRunProvider==null)
{
if(useQueryProvider())
{
if(queryProvider==null) queryProvider = new ODocumentLinksQueryDataProvider(docModel, propertyModel) {
private static final long serialVersionUID = 1L;
@Override
public SortParam<String> getSort() {
return ODocumentLinksDataProvider.this.getSort();
}
};
thisRunProvider = queryProvider;
}
else
{
if(javaSortableProvider==null) javaSortableProvider = new ODocumentLinksJavaSortableDataProvider<String>(docModel, propertyModel){
private static final long serialVersionUID = 1L;
@Override
public SortParam<String> getSort() {
return ODocumentLinksDataProvider.this.getSort();
}
};
thisRunProvider = javaSortableProvider;
}
}
return thisRunProvider;
}
@Override
public Iterator<? extends T> iterator(long first, long count) {
Collection<T> data =dataModel.getObject();
if(data==null || data.size()==0) return Collections.emptyIterator();
if(filterPredicate!=null) data = Collections2.filter(data, filterPredicate);
Iterator<T> it;
final SortParam<S> sortParam = getSort();
if(sortParam!=null && sortParam.getProperty()!=null)
{
Ordering<T> ordering = Ordering.natural().nullsFirst().onResultOf(new Function<T, Comparable<?>>() {
@Override
public Comparable<?> apply(T input) {
return comparableValue(input, sortParam.getProperty());
}
});
if(!sortParam.isAscending()) ordering = ordering.reverse();
it=ordering.sortedCopy(data).iterator();
}
else
{
it=data.iterator();
}
if(filterPredicate!=null) it = Iterators.filter(it, filterPredicate);
if(first>0) Iterators.advance(it, (int)first);
return count>=0?Iterators.limit(it, (int)count):it;
}
@Override
public Iterator<K> iterator(long first, long count)
{
SortParam<String> sort = getSort();
if(sort!=null)
{
model.setSortableParameter(sort.getProperty());
model.setAscending(sort.isAscending());
}
return (Iterator<K>)model.iterator(first, count);
}
private void setConnObjectFieldChoices(
final AjaxTextFieldPanel ajaxTextFieldPanel,
final String resource,
final String searchTerm) {
AtomicReference<String> resourceRemoteKey = new AtomicReference<>(ConnIdSpecialName.NAME);
try {
resourceRemoteKey.set(resourceRestClient.read(resource).getProvision(AnyTypeKind.USER.name()).get().
getMapping().getConnObjectKeyItem().getExtAttrName());
} catch (Exception ex) {
LOG.error("While reading mapping for resource {}", resource, ex);
}
ConnObjectTOQuery.Builder builder = new ConnObjectTOQuery.Builder().size(SEARCH_SIZE);
if (StringUtils.isNotBlank(searchTerm)) {
builder.fiql(SyncopeClient.getConnObjectTOFiqlSearchConditionBuilder().
is(resourceRemoteKey.get()).equalTo(searchTerm + "*").query()).build();
}
Pair<String, List<ConnObjectTO>> items = resourceRestClient.searchConnObjects(resource,
AnyTypeKind.USER.name(),
builder,
new SortParam<>(resourceRemoteKey.get(), true));
connObjectKeyFieldValues = items.getRight().stream().
map(item -> item.getAttr(resourceRemoteKey.get()).get().getValues().get(0)).
collect(Collectors.toList());
ajaxTextFieldPanel.setChoices(connObjectKeyFieldValues);
}
public static List<PropagationTaskTO> listPropagationTasks(
final String resource, final int page, final int size, final SortParam<String> sort) {
return getService(TaskService.class).
<PropagationTaskTO>search(new TaskQuery.Builder(TaskType.PROPAGATION).
resource(resource).
page(page).size(size).
orderBy(toOrderBy(sort)).build()).
getResult();
}
public static List<PropagationTaskTO> listPropagationTasks(
final AnyTypeKind anyTypeKind, final String entityKey,
final int page, final int size, final SortParam<String> sort) {
return getService(TaskService.class).
<PropagationTaskTO>search(new TaskQuery.Builder(TaskType.PROPAGATION).
anyTypeKind(anyTypeKind).entityKey(entityKey).
page(page).size(size).
orderBy(toOrderBy(sort)).build()).
getResult();
}
@SuppressWarnings("unchecked")
public static <T extends TaskTO> List<T> list(
final Class<T> reference, final int page, final int size, final SortParam<String> sort) {
return (List<T>) getService(TaskService.class).
search(new TaskQuery.Builder(getTaskType(reference)).page(page).size(size).
orderBy(toOrderBy(sort)).build()).getResult();
}
@SuppressWarnings("unchecked")
public static <T extends TaskTO> List<T> list(
final String resource,
final Class<T> reference,
final int page,
final int size,
final SortParam<String> sort) {
return (List<T>) getService(TaskService.class).
search(new TaskQuery.Builder(getTaskType(reference)).page(page).size(size).resource(resource).
orderBy(toOrderBy(sort)).build()).getResult();
}
@Override
public List<ExecTO> listExecutions(
final String taskKey, final int page, final int size, final SortParam<String> sort) {
return getService(TaskService.class).
listExecutions(new ExecQuery.Builder().key(taskKey).page(page).size(size).
orderBy(toOrderBy(sort)).build()).getResult();
}
@Override
public List<GroupTO> search(
final String realm,
final String fiql,
final int page,
final int size,
final SortParam<String> sort,
final String type) {
return getService(GroupService.class).
search(new AnyQuery.Builder().realm(realm).fiql(fiql).page(page).size(size).details(false).
orderBy(toOrderBy(sort)).details(false).build()).getResult();
}
@Override
public List<AnyObjectTO> search(final String realm, final String fiql, final int page, final int size,
final SortParam<String> sort,
final String type) {
return getService(AnyObjectService.class).search(
new AnyQuery.Builder().realm(realm).fiql(fiql).page(page).size(size).
orderBy(toOrderBy(sort)).details(false).build()).getResult();
}
@Override
public List<UserTO> search(
final String realm, final String fiql, final int page, final int size, final SortParam<String> sort,
final String type) {
return getService(UserService.class).
search(new AnyQuery.Builder().realm(realm).fiql(fiql).page(page).size(size).details(false).
orderBy(toOrderBy(sort)).details(false).build()).getResult();
}
@Override
public List<ExecTO> listExecutions(
final String taskKey, final int page, final int size, final SortParam<String> sort) {
return getService(ReportService.class).
listExecutions(new ExecQuery.Builder().key(taskKey).page(page).size(size).
orderBy(toOrderBy(sort)).build()).getResult();
}
/**
* Retrieve the first MAX_GROUP_LIST_SIZE assignable.
*/
@Override
protected void reloadObject() {
groups = groupRestClient.search(
realm,
SyncopeClient.getGroupSearchConditionBuilder().isAssignable().query(),
1,
Constants.MAX_GROUP_LIST_SIZE,
new SortParam<>("name", true),
null);
}
@Override
public Iterator<UserRequest> iterator(final long first, final long count) {
final int page = ((int) first / paginatorRows);
return UserRequestRestClient.getUserRequests((page < 0 ? 0 : page) + 1,
paginatorRows,
SyncopeEnduserSession.get().getSelfTO().getUsername(),
new SortParam<>(sortParam, true)).iterator();
}