package usda.weru.util.tree;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import usda.weru.remoteDataAccess.csip.CsipLmodUtil.lmodType;
import usda.weru.remoteDataAccess.remoteFiles.inetFile.CrLmodFile;
import usda.weru.remoteDataAccess.remoteFiles.inetFile.InetFileBgIf;
import usda.weru.remoteDataAccess.csip.CsipInputControllerBgCacheIf;


public class WepsTreeNodeCrLmod extends WepsTreeNodeRemote implements WepsTreeNodeBgIf {

    private static final long serialVersionUID = 1L;

    public WepsTreeNodeCrLmod() {
        this(lmodType.lmodDefault);
    }

    public WepsTreeNodeCrLmod(lmodType ifType) {
        super();
        fileObj = new CrLmodFile(ifType);
    }

    public WepsTreeNodeCrLmod(CrLmodFile file) {
        super(file);
    }

    @Override
    protected WepsTreeNode[] createChildren() {
        super.createChildren();
        List<WepsTreeNode> nodes = new ArrayList<>();

        for (File child : fileObj.listFiles()) {
            nodes.add(new WepsTreeNodeCrLmod((CrLmodFile) child));
        }
        return nodes.toArray(new WepsTreeNode[nodes.size()]);
    }

    @Override
    public void doBackgroundCatalog() {
        ((InetFileBgIf) fileObj).doBackgroundCatalog();
    }

    @Override
    public boolean checkBackgroundNewFiles() {
        return ((InetFileBgIf) fileObj).checkBackgroundNewFiles();
    }

    @Override
    public boolean checkBackgroundDownload() {
        return ((InetFileBgIf) fileObj).checkBackgroundDownload();
    }

    @Override
    public CsipInputControllerBgCacheIf getBackgroundPropertyChangeObject() {
        return ((InetFileBgIf) fileObj).getBackgroundPropertyChangeObject();
    }

    @Override
    public void clearBackgroundNewFiles() {
        ((InetFileBgIf) fileObj).clearBackgroundNewFiles();
    }
}
