/*
* Copyright 2007 the original author or jdon.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.jdon.persistence;
import java.io.Serializable;
import com.jdon.controller.cache.CacheManager;
import com.jdon.model.query.PageIteratorSolver;
public abstract class DaoCRUDTemplate {
protected PageIteratorSolver pageIteratorSolver;
protected DaoCRUD daoCRUD;
/**
* Constants must be configured in jdonframework.xml
* CacheManager has been in jdon container, do not need configured it again.
* in the jdon framework's container.xml it has existed:
* <component name="cacheManager" class="com.jdon.controller.cache.CacheManager" />
*
* @param constants
* @param cacheManager
*/
public DaoCRUDTemplate(CacheManager cacheManager, DaoCRUD daoCRUD) {
pageIteratorSolver = new PageIteratorSolver(daoCRUD.getDataSource(), cacheManager);
this.daoCRUD = daoCRUD;
}
public void insert(Object o) throws Exception {
daoCRUD.insert(o);
clearCacheOfItem();
}
public void update(Object o) throws Exception {
daoCRUD.update(o);
clearCacheOfItem();
}
public void delete(Object o) throws Exception {
daoCRUD.delete(o);
clearCacheOfItem();
}
public Object loadModelById(Class classz, Serializable Id) throws Exception {
return daoCRUD.loadById(classz, Id);
}
public void clearCacheOfItem() {
pageIteratorSolver.clearCache();
}
//public abstract PageIterator getModels(int start, int count) throws Exception;
}