package com.mossle.user.support;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.cache.Cache;
import javax.cache.CacheManager;
import com.mossle.api.userrepo.UserRepoCache;
import com.mossle.api.userrepo.UserRepoDTO;
public class UserRepoCacheImpl implements UserRepoCache {
private CacheManager cacheManager;
private Cache<String, UserRepoDTO> cache;
@PostConstruct
public void init() {
this.cache = this.cacheManager.getCache("userrepo");
}
public UserRepoDTO findById(String id) {
String key = "userRepoId:" + id;
return cache.get(key);
}
public UserRepoDTO findByCode(String code) {
String key = "userRepoCode:" + code;
return cache.get(key);
}
public void updateUserRepo(UserRepoDTO userRepoDto) {
cache.put("userRepoId:" + userRepoDto.getId(), userRepoDto);
cache.put("userRepoCode:" + userRepoDto.getCode(), userRepoDto);
}
public void removeUserRepo(UserRepoDTO userRepoDto) {
cache.remove("userRepoId:" + userRepoDto.getId());
cache.remove("userRepoCode:" + userRepoDto.getCode());
}
@Resource
public void setCacheManager(CacheManager cacheManager) {
this.cacheManager = cacheManager;
}
}