class ExplicitLockingCache implements Ehcache {

    public boolean putIfAbsent(Element element) {
        try {
            acquireWriteLockOnKey(element.getKey());
            if (!isKeyInCache(element.getKey())) {
                this.put(element);
                return true;
            }
            return false;
        } finally {
            releaseWriteLockOnKey(element.getKey());
        }

    }

    public  ExplicitLockingCache(Ehcache cache);

}