// 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 org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.util.*;
     * @param schema    CloudSearch schema
     * @return
     */
    private boolean isValidPropertyName(String propertyName, JSONObject schema) {
        if(isSchemaInfoStored == false) {
            this.storeSchemaInfo(schema);
        }
        return (this.schemaInfo.get(propertyName) != null);
    }

    /**
     * @param aiSkillName   Name of the AI Skill
     */
    @Override
    public void setAISkillName(String aiSkillName) { this.aiSkillName = aiSkillName; }

    /**
     * @return  Returns skill name
     */
    @Override
    public String getAISkillName() {
        return this.aiSkillName;
    }

    /**
     *
     * @param aiSkillName   Name of the AI Skill
     * @throws InvalidConfigException   throws exception if name not specified in the configuration.
     */
    @Override
// 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/BaseAISkill.java
import com.google.cloud.language.v1.*;
import com.google.cloudsearch.exceptions.InvalidConfigException;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.util.*;

     * @param schema    CloudSearch schema
     * @return
     */
    private boolean isValidPropertyName(String propertyName, JSONObject schema) {
        if(isSchemaInfoStored == false) {
            this.storeSchemaInfo(schema);
        }
        return (this.schemaInfo.get(propertyName) != null);
    }

    /**
     * @param aiSkillName   Name of the AI Skill
     */
    @Override
    public void setAISkillName(String aiSkillName) { this.aiSkillName = aiSkillName; }

    /**
     * @return  Returns skill name
     */
    @Override
    public String getAISkillName() {
        return this.aiSkillName;
    }

    /**
     *
     * @param aiSkillName   Name of the AI Skill
     * @throws InvalidConfigException   throws exception if name not specified in the configuration.
     */
    @Override
    public void parseAISkillName(String aiSkillName) throws InvalidConfigException {