package rainbownlp.util.caching; import java.util.HashMap; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import rainbownlp.util.HibernateUtil; @Entity @Table( name = "CacheEntry" ) /** * This is a general class to store key/value * @author Ehsan * */ public class CacheEntry { private String keyValue; private String value; @Column(columnDefinition="TEXT") public String getValue() { return value; } public void setValue(String value) { this.value = value; } @Id public String getKeyValue() { return keyValue; } public void setKeyValue(String keyValue) { this.keyValue = keyValue; } /** * Loads cache entry by id * @param pArtifactID * @return */ synchronized public static CacheEntry getInstance(String pKey) { CacheEntry entry = get(pKey); if(entry == null) { entry = new CacheEntry(); entry.setKeyValue(pKey); HibernateUtil.save(entry); } return entry; } synchronized public static CacheEntry createInstance(String pKey, String value) { CacheEntry entry = get(pKey); if(entry == null) { entry = new CacheEntry(); entry.setKeyValue(pKey); entry.setValue(value); HibernateUtil.saveWithNewSession(entry); } return entry; } synchronized public static CacheEntry get(String pKey){ String hql = "from CacheEntry where keyValue = :key"; HashMap<String, Object> params = new HashMap<String, Object>(); params.put("key", pKey); CacheEntry entry=(CacheEntry)HibernateUtil.executeGetOneValue(hql,params);; return entry; } }