001    /*
002     * Copyright 2005-2007 The Kuali Foundation
003     * 
004     * 
005     * Licensed under the Educational Community License, Version 2.0 (the "License");
006     * you may not use this file except in compliance with the License.
007     * You may obtain a copy of the License at
008     * 
009     * http://www.opensource.org/licenses/ecl2.php
010     * 
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    package org.kuali.rice.kew.rule.dao.impl;
018    
019    import java.util.List;
020    
021    import org.apache.ojb.broker.query.Criteria;
022    import org.apache.ojb.broker.query.QueryByCriteria;
023    import org.kuali.rice.kew.rule.bo.RuleAttribute;
024    import org.kuali.rice.kew.rule.dao.RuleAttributeDAO;
025    import org.springmodules.orm.ojb.support.PersistenceBrokerDaoSupport;
026    
027    
028    public class RuleAttributeDAOOjbImpl extends PersistenceBrokerDaoSupport implements RuleAttributeDAO {
029    
030            private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(RuleAttributeDAOOjbImpl.class);
031    
032            public void save(RuleAttribute ruleAttribute) {
033                    this.getPersistenceBrokerTemplate().store(ruleAttribute);
034            }
035    
036            public void delete(String ruleAttributeId) {
037                    this.getPersistenceBrokerTemplate().delete(findByRuleAttributeId(ruleAttributeId));
038            }
039    
040            public RuleAttribute findByRuleAttributeId(String ruleAttributeId) {
041                    RuleAttribute ruleAttribute = new RuleAttribute();
042                    ruleAttribute.setRuleAttributeId(ruleAttributeId);
043                    return (RuleAttribute) this.getPersistenceBrokerTemplate().getObjectByQuery(new QueryByCriteria(ruleAttribute));
044            }
045    
046            public List<RuleAttribute> findByRuleAttribute(RuleAttribute ruleAttribute) {
047                    Criteria crit = new Criteria();
048                    if (ruleAttribute.getName() != null) {
049                            crit.addSql("UPPER(RULE_ATTRIB_NM) like '" + ruleAttribute.getName().toUpperCase() + "'");
050                    }
051                    if (ruleAttribute.getClassName() != null) {
052                            crit.addSql("UPPER(RULE_ATTRIB_CLS_NM) like '" + ruleAttribute.getClassName().toUpperCase() + "'");
053                    }
054                    if (ruleAttribute.getType() != null) {
055                            crit.addSql("UPPER(RULE_ATTRIB_TYP) like '" + ruleAttribute.getType().toUpperCase() + "'");
056                    }
057                    return (List<RuleAttribute>) this.getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(RuleAttribute.class, crit));
058    
059            }
060    
061            public List<RuleAttribute> getAllRuleAttributes() {
062                    return (List<RuleAttribute>) this.getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(RuleAttribute.class));
063            }
064    
065            public RuleAttribute findByName(String name) {
066                    LOG.debug("findByName name=" + name);
067                    Criteria crit = new Criteria();
068                    crit.addEqualTo("name", name);
069                    return (RuleAttribute) this.getPersistenceBrokerTemplate().getObjectByQuery(new QueryByCriteria(RuleAttribute.class, crit));
070            }
071    
072            public RuleAttribute findByClassName(String classname) {
073                    Criteria crit = new Criteria();
074                    crit.addEqualTo("className", classname);
075                    return (RuleAttribute) this.getPersistenceBrokerTemplate().getObjectByQuery(new QueryByCriteria(RuleAttribute.class, crit));
076            }
077    
078    }