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

package com.hypixel.hytale.assetstore;

import java.util.Iterator;
import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
import java.util.Set;
import java.nio.file.Path;
import java.util.Map;

public class AssetLoadResult<K, T>
{
    private final Map<K, T> loadedAssets;
    private final Map<K, Path> loadedKeyToPathMap;
    private final Set<K> failedToLoadKeys;
    private final Set<Path> failedToLoadPaths;
    private final Map<Class<? extends JsonAssetWithMap>, AssetLoadResult> childAssetResults;
    
    public AssetLoadResult(final Map<K, T> loadedAssets, final Map<K, Path> loadedKeyToPathMap, final Set<K> failedToLoadKeys, final Set<Path> failedToLoadPaths, final Map<Class<? extends JsonAssetWithMap>, AssetLoadResult> childAssetResults) {
        this.loadedAssets = loadedAssets;
        this.loadedKeyToPathMap = loadedKeyToPathMap;
        this.failedToLoadKeys = failedToLoadKeys;
        this.failedToLoadPaths = failedToLoadPaths;
        this.childAssetResults = childAssetResults;
    }
    
    public Map<K, T> getLoadedAssets() {
        return this.loadedAssets;
    }
    
    public Map<K, Path> getLoadedKeyToPathMap() {
        return this.loadedKeyToPathMap;
    }
    
    public Set<K> getFailedToLoadKeys() {
        return this.failedToLoadKeys;
    }
    
    public Set<Path> getFailedToLoadPaths() {
        return this.failedToLoadPaths;
    }
    
    public boolean hasFailed() {
        if (!this.failedToLoadKeys.isEmpty() || !this.failedToLoadPaths.isEmpty()) {
            return true;
        }
        for (final AssetLoadResult result : this.childAssetResults.values()) {
            if (result.hasFailed()) {
                return true;
            }
        }
        return false;
    }
}
