001    /*
002     * Copyright 2011 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     */
016    package org.kuali.kfs.coa.dataaccess.impl;
017    
018    import org.apache.ojb.broker.query.Criteria;
019    import org.apache.ojb.broker.query.QueryFactory;
020    import org.kuali.kfs.coa.businessobject.ProjectCode;
021    import org.kuali.kfs.coa.dataaccess.ProjectCodeDao;
022    import org.kuali.rice.kns.dao.impl.PlatformAwareDaoBaseOjb;
023    
024    
025    /**
026     * This class is the OJB implementation of the ProjectCodeDao interface.
027     */
028    public class ProjectCodeDaoOjb extends PlatformAwareDaoBaseOjb implements ProjectCodeDao {
029        private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ProjectCodeDaoOjb.class);
030    
031        /**
032         * Retrieves project code business object by primary key
033         * 
034         * @param projectCode - part of composite key
035         * @return Project
036         * @see ProjectCodeDao#getByPrimaryId(String)
037         */
038        public ProjectCode getByPrimaryId(String projectCode) {
039            Criteria criteria = new Criteria();
040            criteria.addEqualTo("code", projectCode);
041    
042            return (ProjectCode) getPersistenceBrokerTemplate().getObjectByQuery(QueryFactory.newQuery(ProjectCode.class, criteria));
043        }
044    
045        /**
046         * Retrieves project code business object by project name
047         * 
048         * @param name - part of composite key
049         * @return Project
050         * @see ProjectCodeDao#getByName(String)
051         */
052        public ProjectCode getByName(String name) {
053            Criteria criteria = new Criteria();
054            criteria.addEqualTo("name", name);
055    
056            return (ProjectCode) getPersistenceBrokerTemplate().getObjectByQuery(QueryFactory.newQuery(ProjectCode.class, criteria));
057        }
058    
059        /**
060         * @param projectCode - a populated ProjectCode object to be saved
061         * @throws IllegalObjectStateException
062         * @throws ValidationErrorList
063         * @see ProjectCodeDaoOjb#save(ProjectCode)
064         */
065        public void save(ProjectCode projectCode) {
066            getPersistenceBrokerTemplate().store(projectCode);
067        }
068    
069    }