// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.worldgen.util.cache;

import java.util.logging.Level;
import java.lang.ref.WeakReference;
import com.hypixel.hytale.logger.HytaleLogger;

public class CleanupRunnable<K, V> implements Runnable
{
    private static final HytaleLogger LOGGER;
    private final WeakReference<Cache<K, V>> reference;
    
    public CleanupRunnable(final WeakReference<Cache<K, V>> reference) {
        this.reference = reference;
    }
    
    @Override
    public void run() {
        try {
            final Cache<K, V> cache = this.reference.get();
            if (cache != null) {
                cache.cleanup();
            }
        }
        catch (final Exception e) {
            CleanupRunnable.LOGGER.at(Level.SEVERE).withCause(e).log("Failed to run cache cleanup!");
        }
    }
    
    static {
        LOGGER = HytaleLogger.forEnclosingClass();
    }
}
