001    /**
002     * Copyright 2010 The Kuali Foundation Licensed under the
003     * Educational Community License, Version 2.0 (the "License"); you may
004     * not use this file except in compliance with the License. You may
005     * obtain a copy of the License at
006     *
007     * http://www.osedu.org/licenses/ECL-2.0
008     *
009     * Unless required by applicable law or agreed to in writing,
010     * software distributed under the License is distributed on an "AS IS"
011     * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012     * or implied. See the License for the specific language governing
013     * permissions and limitations under the License.
014     */
015    
016    package org.kuali.rice.student.lookup.keyvalues;
017    
018    import java.util.ArrayList;
019    import java.util.List;
020    
021    import org.kuali.rice.core.util.KeyLabelPair;
022    import org.kuali.student.common.search.dto.SearchRequest;
023    import org.kuali.student.common.search.dto.SearchResultCell;
024    import org.kuali.student.common.search.dto.SearchResultRow;
025    
026    public class AllOrgsValuesFinder extends StudentKeyValuesBase {
027            private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(AllOrgsValuesFinder.class);
028    
029            public List<KeyLabelPair> getKeyValues() {
030            List<KeyLabelPair> departments = new ArrayList<KeyLabelPair>();
031    
032            SearchRequest searchRequest = new SearchRequest();
033            searchRequest.setSearchKey("org.search.generic");
034    
035            try {
036                for (SearchResultRow result : getOrganizationService().search(searchRequest).getRows()) {
037                    String orgId = "";
038                    String orgShortName = "";
039                    String orgOptionalLongName = "";
040                    String orgType = "";
041                    for (SearchResultCell resultCell : result.getCells()) {
042                        if ("org.resultColumn.orgId".equals(resultCell.getKey())) {
043                            orgId = resultCell.getValue();
044                        } else if ("org.resultColumn.orgShortName".equals(resultCell.getKey())) {
045                            orgShortName = resultCell.getValue();
046                        } else if ("org.resultColumn.orgOptionalLongName".equals(resultCell.getKey())) {
047                            orgOptionalLongName = resultCell.getValue();
048                        } else if ("org.resultColumn.orgType".equals(resultCell.getKey())) {
049                            orgType = resultCell.getValue();
050                        }
051                    }
052                    departments.add(buildKeyLabelPair(orgId, orgShortName, orgOptionalLongName, orgType));
053                }
054    
055                return departments;
056            } catch (Exception e) {
057                    LOG.error("Error building KeyValues List", e);
058                throw new RuntimeException(e);
059            }
060        }
061    
062    }