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.lum.lo.dao;
017    
018    import java.util.List;
019    
020    import org.kuali.student.common.dao.CrudDao;
021    import org.kuali.student.common.dao.SearchableDao;
022    import org.kuali.student.common.exceptions.DependentObjectsExistException;
023    import org.kuali.student.common.exceptions.DoesNotExistException;
024    import org.kuali.student.common.exceptions.UnsupportedActionException;
025    import org.kuali.student.lum.lo.entity.Lo;
026    import org.kuali.student.lum.lo.entity.LoCategory;
027    import org.kuali.student.lum.lo.entity.LoLoRelation;
028    
029    public interface LoDao extends CrudDao, SearchableDao  {
030            public List<Lo> getLoByIdList(List<String> loIds);
031            public List<Lo> getLosByLoCategory(String loCategoryId);
032            public List<LoCategory> getLoCategories(String loHierarchyKey);
033        public boolean addLoCategoryToLo(String loCategoryId, String loId) throws UnsupportedActionException, DoesNotExistException;
034        public boolean removeLoCategoryFromLo(String loCategoryId, String loId) throws DoesNotExistException;
035        public boolean deleteLoCategory(String loCategoryId) throws DoesNotExistException, DependentObjectsExistException;
036        public boolean deleteLo(String loId) throws DoesNotExistException, DependentObjectsExistException;
037        public List<Lo> getRelatedLosByLoId(String loId, String loLoRelationTypeId) throws DoesNotExistException;
038        public List<Lo> getLosByRelatedLoId(String relatedLoId, String loLoRelationTypeId) throws DoesNotExistException;
039            public void deleteLoLoRelation(String loLoRelationId) throws DoesNotExistException;
040            public List<LoCategory> getLoCategoriesForLo(String loId);
041            public List<String> getAllowedLoLoRelationTypesForLoType(String loTypeKey, String relatedLoTypeKey);
042            public List<Lo> getLosByRepository(String loRepositoryId);
043            public List<LoLoRelation> getLoLoRelationsByLoId(String loId);
044    }