// Path: indexer/ai/src/main/java/com/google/cloudsearch/exceptions/InvalidConfigException.java
// public class InvalidConfigException extends Exception {
//         public InvalidConfigException(String e){
//             super(e);
//         }
// }


import com.google.cloud.language.v1.*;
import com.google.cloudsearch.exceptions.InvalidConfigException;
import com.google.common.collect.Multimap;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;
                case Constants.CONFIG_ENTITY_SALIENCE_FILTER : {
                    this.salienceFilter = (Double) filter.get(key);
                    break;
                }
            }
        }
    }

    /**
     * Returns the filters
     * @return  Returns the filters in JSON Format.
     */
    @Override
    public JSONObject getFilter() {
        JSONObject obj = new JSONObject();
        obj.put("type", this.typeFilter);
        obj.put("salience", this.salienceFilter);
        return obj;
    }

    /**
     * Parses the JSON Object containing the filters for the skill and validate it before calling the setter.
     * @param filter  JSON Object containing the filters
     * @throws InvalidConfigException     Throws exception if the filter name is not supported.
     */
    @Override
    public void parseFilter(JSONObject filter) throws InvalidConfigException {
        if(filter == null)
            return;
        for(Object key : filter.keySet()){
// Path: indexer/ai/src/main/java/com/google/cloudsearch/exceptions/InvalidConfigException.java
// public class InvalidConfigException extends Exception {
//         public InvalidConfigException(String e){
//             super(e);
//         }
// }


// Path: indexer/ai/src/main/java/com/google/cloudsearch/ai/StandardSkillEntityExtraction.java
import com.google.cloud.language.v1.*;
import com.google.cloudsearch.exceptions.InvalidConfigException;
import com.google.common.collect.Multimap;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.log4j.Logger;

                case Constants.CONFIG_ENTITY_SALIENCE_FILTER : {
                    this.salienceFilter = (Double) filter.get(key);
                    break;
                }
            }
        }
    }

    /**
     * Returns the filters
     * @return  Returns the filters in JSON Format.
     */
    @Override
    public JSONObject getFilter() {
        JSONObject obj = new JSONObject();
        obj.put("type", this.typeFilter);
        obj.put("salience", this.salienceFilter);
        return obj;
    }

    /**
     * Parses the JSON Object containing the filters for the skill and validate it before calling the setter.
     * @param filter  JSON Object containing the filters
     * @throws InvalidConfigException     Throws exception if the filter name is not supported.
     */
    @Override
    public void parseFilter(JSONObject filter) throws InvalidConfigException {
        if(filter == null)
            return;
        for(Object key : filter.keySet()){
            if(!(key.equals(Constants.CONFIG_ENTITY_TYPE_FILTER) || key.equals(Constants.CONFIG_ENTITY_SALIENCE_FILTER)))