class SSMCache implements Cache {

    @Override
    public ValueWrapper get(final Object key) {
        if (!cache.isEnabled()) {
            LOGGER.warn("Cache {} is disabled. Cannot get {} from cache", cache.getName(), key);
            return null;
        }

        Object value = getValue(key);
        if (value == null) {
            LOGGER.info("Cache miss. Get by key {} from cache {}", key, cache.getName());
            return null;
        }

        LOGGER.info("Cache hit. Get by key {} from cache {} value '{}'", new Object[] { key, cache.getName(), value });
        return value instanceof PertinentNegativeNull ? new SimpleValueWrapper(null) : new SimpleValueWrapper(value);
    }

    public  SSMCache(final com.google.code.ssm.Cache cache, final int expiration, final boolean allowClear, final boolean registerAliases,
            final boolean muteExceptions);
    public  SSMCache(final com.google.code.ssm.Cache cache, final int expiration, final boolean allowClear);
    public  SSMCache(final com.google.code.ssm.Cache cache, final int expiration);
    public  SSMCache(final SSMCache ssmCache, final int expiration);

}