001/**
002 * Copyright 2004-2014 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.student.contract.model;
017
018import java.util.List;
019
020/**
021 * Abstration of the spreadsheet that holds the data so we can implement both
022 * google and excel versions as well as caching and expanding ones.
023 * @author nwright
024 */
025public interface DictionaryModel extends SearchModel, ServiceContractModel {
026
027    /**
028     * get name of the source of this spreadsheet
029     * @return
030     */
031    public List<String> getSourceNames();
032
033    /**
034     * get dictionary entries
035     * @return
036     */
037    public List<Dictionary> getDictionary();
038
039    /**
040     * load lu States
041     * @return
042     */
043    public List<State> getStates();
044
045    /**
046     * get the kuali student types
047     * @return
048     */
049    public List<Type> getTypes();
050
051    /**
052     * get fields
053     * @return
054     */
055    public List<Field> getFields();
056
057    /**
058     * get constraints
059     * @return
060     */
061    public List<Constraint> getConstraints();
062
063    /**
064     * get cross object constraints
065     * @return
066     */
067    public List<CrossObjectConstraint> getCrossObjectConstraints();
068
069    /**
070     * get Orchestration Object Definitions
071     * @return
072     */
073    public List<OrchObj> getOrchObjs();
074
075    /**
076     * get the project definitions
077     * @return list of projects known to the metadata
078     */
079    public List<Project> getProjects();
080}