Coverage Report - com.neidetcher.petunia.service.KnowledgeDaoImpl
 
Classes in this File Line Coverage Branch Coverage Complexity
KnowledgeDaoImpl
100% 
100% 
0
 
 1  
 package com.neidetcher.petunia.service;
 2  
 
 3  
 import java.util.HashMap;
 4  
 import java.util.List;
 5  
 import java.util.Map;
 6  
 
 7  
 import org.apache.commons.logging.Log;
 8  
 import org.apache.commons.logging.LogFactory;
 9  
 import org.springframework.dao.OptimisticLockingFailureException;
 10  
 import org.springframework.jdbc.JdbcUpdateAffectedIncorrectNumberOfRowsException;
 11  
 import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
 12  
 
 13  32
 public class KnowledgeDaoImpl extends SqlMapClientDaoSupport implements KnowledgeDao
 14  
 {
 15  
 
 16  16
    protected Log log = LogFactory.getLog(KnowledgeDaoImpl.class);
 17  
 
 18  
    @Override
 19  
    public Knowledge save(Knowledge knowledge)
 20  
    {
 21  12
       log.debug(knowledge.toString());
 22  
 
 23  12
       if (knowledge.isNew())
 24  
       {
 25  6
          log.debug("create");
 26  6
          knowledge.setVersion(0);
 27  
          Integer newId;
 28  
 
 29  6
          newId = (Integer) getSqlMapClientTemplate().insert("Knowledge.insert", knowledge);
 30  6
          knowledge.setId(newId);
 31  6
          return knowledge;
 32  
       }
 33  
 
 34  6
       log.debug("update");
 35  
       try
 36  
       {
 37  6
          getSqlMapClientTemplate().update("Knowledge.update", knowledge, 1);
 38  4
          knowledge.setVersion(knowledge.getVersion() + 1);
 39  4
          return knowledge;
 40  
       }
 41  2
       catch (JdbcUpdateAffectedIncorrectNumberOfRowsException exception)
 42  
       {
 43  2
          log.warn(exception.getMessage());
 44  4
          throw new OptimisticLockingFailureException(
 45  2
                "Provided you have given an object with a valid ID, someone has written underneath you.  "
 46  2
                      + "Do another find and save.", exception);
 47  
       }
 48  
    }
 49  
 
 50  
    public Knowledge find(Integer id)
 51  
    {
 52  4
       return (Knowledge) getSqlMapClientTemplate().queryForObject("Knowledge.findById", id);
 53  
    }
 54  
 
 55  
    @Override
 56  
    public List<Knowledge> findByTagName(String tagName)
 57  
    {
 58  2
       return getSqlMapClientTemplate().queryForList("Knowledge.findByTagName", tagName);
 59  
    }
 60  
 
 61  
    @Override
 62  
    public List<Knowledge> findByCategoryId(Integer categoryId)
 63  
    {
 64  2
       return getSqlMapClientTemplate().queryForList("Knowledge.findByCategoryId", categoryId);
 65  
    }
 66  
 
 67  
    @Override
 68  
    public List<String> findTags(Integer knowledgeId)
 69  
    {
 70  8
       return getSqlMapClientTemplate().queryForList("Knowledge.findTags", knowledgeId);
 71  
    }
 72  
 
 73  
    @Override
 74  
    public void addTag(Integer knowledgeId, String tagName)
 75  
    {
 76  2
       Map<String, String> parameterMap = new HashMap<String, String>();
 77  2
       parameterMap.put("knowledgeId", knowledgeId.toString());
 78  2
       parameterMap.put("tagName", tagName);
 79  
 
 80  2
       getSqlMapClientTemplate().insert("Knowledge.addTag", parameterMap);
 81  2
    }
 82  
 
 83  
    public void removeTag(Integer knowledgeId, String tagName)
 84  
    {
 85  2
       Map<String, String> parameterMap = new HashMap<String, String>();
 86  2
       parameterMap.put("knowledgeId", knowledgeId.toString());
 87  2
       parameterMap.put("tagName", tagName);
 88  
 
 89  2
       getSqlMapClientTemplate().delete("Knowledge.removeTag", parameterMap);
 90  2
    }
 91  
 }