/** * Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.glite.security.voms.admin.view.actions.admin; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.glite.security.voms.admin.persistence.model.request.Request; import org.glite.security.voms.admin.view.actions.BaseAction; import org.glite.security.voms.admin.view.util.RequestUtil; import com.opensymphony.xwork2.Preparable; public class BulkRequestActionSupport extends BaseAction implements Preparable { /** * */ private static final long serialVersionUID = 1L; List<Long> requestIds; Map<Long, Request> requestMap = new HashMap<Long, Request>(); List<Request> selectedRequests = new ArrayList<Request>(); @Override public void validate() { if (requestIds == null) { addActionError("No requests selected!"); } else if (requestIds.contains("ognl.NoConversionPossible")) { addActionError("No requests selected!"); } } public List<Long> getRequestIds() { return requestIds; } public void setRequestIds(List<Long> requestIds) { this.requestIds = requestIds; } protected void refreshRequests() { requestMap.clear(); List<Request> manageableRequests = RequestUtil.findManageableRequests(); for (Request r : manageableRequests) { requestMap.put(r.getId(), r); } } @Override public void prepare() throws Exception { refreshRequests(); selectedRequests.clear(); if (requestIds != null) { for (Long id : requestIds) { Request r = requestMap.get(id); if (r != null) { selectedRequests.add(r); } } } } public List<Request> getSelectedRequests() { return selectedRequests; } public void setSelectedRequests(List<Request> selectedRequests) { this.selectedRequests = selectedRequests; } public Collection<Request> getPendingRequests() { if (requestMap.isEmpty()) { return Collections.emptyList(); } return requestMap.values(); } }