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.student.common.ui.client.service;
017    
018    import java.util.List;
019    
020    import org.kuali.student.core.dictionary.old.dto.ObjectStructure;
021    import org.kuali.student.core.search.dto.SearchCriteriaTypeInfo;
022    import org.kuali.student.core.search.dto.SearchRequest;
023    import org.kuali.student.core.search.dto.SearchResult;
024    import org.kuali.student.core.search.dto.SearchResultTypeInfo;
025    import org.kuali.student.core.search.dto.SearchTypeInfo;
026    
027    import com.google.gwt.user.client.rpc.RemoteService;
028    
029    /**
030     *  A base RPC service interface that exposes dictionary and search interfaces
031     *  of a service endpoint interface SEI
032     * 
033     * @author Kuali Student Team
034     *
035     */
036    public interface BaseRpcService extends RemoteService{
037    
038        /* Dictionary Operations */
039        
040        public List<String> getObjectTypes();
041    
042        public ObjectStructure getObjectStructure(String objectTypeKey);    
043        
044        /* Search Operations */
045        public List<SearchTypeInfo> getSearchTypes();
046    
047        public SearchTypeInfo getSearchType(String searchTypeKey);
048    
049        public List<SearchTypeInfo> getSearchTypesByResult(String searchResultTypeKey);
050    
051        public List<SearchTypeInfo> getSearchTypesByCriteria(String searchCriteriaTypeKey);
052    
053        public List<SearchResultTypeInfo> getSearchResultTypes();
054    
055        public SearchResultTypeInfo getSearchResultType(String searchResultTypeKey);
056    
057        public List<SearchCriteriaTypeInfo> getSearchCriteriaTypes();
058    
059        public SearchCriteriaTypeInfo getSearchCriteriaType(String searchCriteriaTypeKey);
060    
061        public SearchResult search(SearchRequest searchRequest);
062    
063    }