001/** 002 * Copyright 2005-2016 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.rice.edl.impl.dao.impl; 017 018import java.util.ArrayList; 019import java.util.Iterator; 020import java.util.List; 021 022import org.apache.ojb.broker.query.Criteria; 023import org.apache.ojb.broker.query.QueryByCriteria; 024import org.kuali.rice.edl.impl.bo.EDocLiteAssociation; 025import org.kuali.rice.edl.impl.bo.EDocLiteDefinition; 026import org.kuali.rice.edl.impl.dao.EDocLiteDAO; 027import org.springmodules.orm.ojb.support.PersistenceBrokerDaoSupport; 028 029 030public class EDocLiteDAOOjbImpl extends PersistenceBrokerDaoSupport implements EDocLiteDAO { 031 032 public void saveEDocLiteDefinition(EDocLiteDefinition edocLiteData) { 033 this.getPersistenceBrokerTemplate().store(edocLiteData); 034 } 035 036 public void saveEDocLiteAssociation(EDocLiteAssociation assoc) { 037 this.getPersistenceBrokerTemplate().store(assoc); 038 } 039 040 public EDocLiteDefinition getEDocLiteDefinition(String defName) { 041 Criteria criteria = new Criteria(); 042 criteria.addEqualTo("name", defName); 043 criteria.addEqualTo("activeInd", Boolean.TRUE); 044 return (EDocLiteDefinition) this.getPersistenceBrokerTemplate().getObjectByQuery(new QueryByCriteria(EDocLiteDefinition.class, criteria)); 045 } 046 047 public EDocLiteAssociation getEDocLiteAssociation(String docTypeName) { 048 Criteria criteria = new Criteria(); 049 criteria.addEqualTo("edlName", docTypeName); 050 criteria.addEqualTo("activeInd", Boolean.TRUE); 051 return (EDocLiteAssociation) this.getPersistenceBrokerTemplate().getObjectByQuery(new QueryByCriteria(EDocLiteAssociation.class, criteria)); 052 } 053 054 public List getEDocLiteDefinitions() { 055 Criteria criteria = new Criteria(); 056 criteria.addEqualTo("activeInd", Boolean.TRUE); 057 Iterator it = this.getPersistenceBrokerTemplate().getIteratorByQuery(new QueryByCriteria(EDocLiteDefinition.class, criteria)); 058 List defs = new ArrayList(); 059 while (it.hasNext()) { 060 defs.add(((EDocLiteDefinition) it.next()).getName()); 061 } 062 return defs; 063 } 064 065 public List getEDocLiteAssociations() { 066 Criteria criteria = new Criteria(); 067 criteria.addEqualTo("activeInd", Boolean.TRUE); 068 Iterator it = this.getPersistenceBrokerTemplate().getIteratorByQuery(new QueryByCriteria(EDocLiteAssociation.class, criteria)); 069 List assocs = new ArrayList(); 070 while (it.hasNext()) { 071 assocs.add(it.next()); 072 } 073 return assocs; 074 } 075 076 public List search(EDocLiteAssociation edocLite) { 077 Criteria crit = new Criteria(); 078 if (edocLite.getActiveInd() != null) { 079 crit.addEqualTo("activeInd", edocLite.getActiveInd()); 080 } 081 if (edocLite.getDefinition() != null) { 082 crit.addLike("UPPER(definition)", "%"+edocLite.getDefinition().toUpperCase()+"%"); 083 } 084 if (edocLite.getEdlName() != null) { 085 crit.addLike("UPPER(edlName)", "%"+edocLite.getEdlName().toUpperCase()+"%"); 086 } 087 if (edocLite.getStyle() != null) { 088 crit.addLike("UPPER(style)", "%"+edocLite.getStyle().toUpperCase()+"%"); 089 } 090 return (List)this.getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(EDocLiteAssociation.class, crit)); 091 } 092 093 public EDocLiteAssociation getEDocLiteAssociation(Long associationId) { 094 Criteria crit = new Criteria(); 095 crit.addEqualTo("edocLiteAssocId", associationId); 096 return (EDocLiteAssociation)this.getPersistenceBrokerTemplate().getObjectByQuery(new QueryByCriteria(EDocLiteAssociation.class, crit)); 097 } 098}