package de.eknori; import static com.ibm.xsp.extlib.util.ExtLibUtil.getApplicationScope; import java.util.Date; import java.util.Map; import lotus.domino.NotesException; public class Tools { private boolean debugMode = true; public Tools() {} public boolean refreshCache(String key, long cacheInterval) throws NotesException{ Map<String, Object> applicationScope = getApplicationScope(); Long currentTime = new Date().getTime(); if (!applicationScope.containsKey(key + "_time")){ applicationScope.put(key + "_time", currentTime); if (this.isDebugMode()) { System.out.println("refreshCache(): -- Initializing --"); } return true; } long diffInSecs = currentTime - (Long)applicationScope.get(key + "_time") ; if (this.isDebugMode()) { System.out.println("refreshCache(): diffInSecs: " + diffInSecs); } if (diffInSecs < cacheInterval * 1000) { if (this.isDebugMode()) { System.out.println("refreshCache(): cache still valid"); } return false; } else { applicationScope.put(key + "_time", currentTime); if (this.isDebugMode()) { System.out.println("refreshCache(): needs to be refreshed after " + cacheInterval + " seconds"); } return true; } } public boolean isDebugMode() { return this.debugMode; } public void setDebugMode(final boolean debugMode) { this.debugMode = debugMode; } }