package org.hadatac.console.models;

import java.util.ArrayList;
import java.util.Map;
import java.util.TreeMap;

public class FacetsWithCategories {

    //Maps categories of field facets (e.g "characteristic") to a list of the facets falling in that category (e.g pH)
    public TreeMap<String, TreeMap<String, Boolean>> facets = new TreeMap<String, TreeMap<String, Boolean>>();
    //List of categories
    public Map<String, Boolean> categories = new TreeMap<String, Boolean>();
    //Keep track of all facets regardless of category for use by the query form
    public ArrayList<String> all_facets = new ArrayList<String>();


    public FacetsWithCategories() {}

    //TODO update this to create facets Map
    public FacetsWithCategories(Map<String, Boolean> facet_categories, ArrayList<String> all_facets){
        this.categories = new TreeMap<String, Boolean>(facet_categories);
        this.all_facets = new ArrayList<String>(all_facets);
    }

    //Consider adding to map from categories to list of strings
    public boolean addFacet(String category, String facet){
        if (categories.get(category) == null) {
            categories.put(category, true);
            facets.put(category, new TreeMap<String, Boolean>());
        }
        //Note that this doesn't prevent the facet from being overwritten
        facets.get(category).put(facet, false);
        return true;
    }

}
