package usda.weru.remoteDataAccess.csip.polygon.prism;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import static usda.weru.remoteDataAccess.csip.CsipInputControllerCachingSupport.PROP_CSIP_BGCATALOG_COMPLETE;
import usda.weru.remoteDataAccess.csip.CsipLmodUtil;
import usda.weru.remoteDataAccess.csip.CsipInterface;
import usda.weru.remoteDataAccess.csip.polygon.CsipInputContPolygonBgCache;
import usda.weru.util.ConfigData;
import static usda.weru.weps.gui.ConfigPanel_n.CSIP_PRISM_POLYGONSIZE_PROP;

/**
 *
 * @author mhaas
 */
public class CsipInputContPrismBgCache extends CsipInputContPolygonBgCache {
    
    public CsipInputContPrismBgCache () {
        this (false);
    }
    
    public CsipInputContPrismBgCache (boolean fromSubClass) {
        super (fromSubClass);
    
        if (ConfigData.checkParmValue("CD-WS-csip-Soil-DoLoadCache","1")) {
            doCacheBackgroundLoad = true;
        }
        
        setPolygonPropName(CSIP_PRISM_POLYGONSIZE_PROP);
        
        cachesupport = new CsipInputContPrismCachingSupport(this);
        cachesupport.setBaseCacheDir(new File (cachesupport.getBaseCacheDir(), CsipLmodUtil.WepsCacheDirNamePrism) );
        cacheloader = new CsipInputContPrismCacheLoader (this, cachesupport);
        changes.addPropertyChangeListener(PROP_CSIP_BGCATALOG_COMPLETE,this);
    }
    
    @Override
    protected CsipInterface getNewCsipInterface() {
                return new CsipInterfacePrism ();
    }
    
    @Override
    protected CsipInputContPolygonBgCache getNewCsipInputContPolygonBgCache() {
                return new CsipInputContPrismBgCache ();
    }
    
    @Override
    public boolean cacheWriteCatalog (ArrayList<String> catalog) throws IOException {
        super.cacheWriteCatalog(catalog);
        // For prism, just re-download every time.
        // So, return false (not in cache).
        return false;
    }
}
