/*
         * @JDropdown(
         * root = @FindBy(className = "country-selection"),
         * value = @FindBy(css = ".country-wrapper .arrow"),
         * elementByName = @FindBy(xpath = "*root*/ /*[contains(@id,'select-box-applicantCountry')]//li[.='%s']"))
         * IDropDown country;
         *
         * @JDropdown(
         *  root = @FindBy(className = "city-selection"),
         *  expand = @FindBy(css = ".city-wrapper .arrow"),
         *  list = @FindBy(xpath = "*root*/ /*[contains(@id,'select-box-applicantCity')]//li")
         * )
         * IDropDown city;
         */

        string GetLocatorText(LocatorDefinition locator, string locatorName, SupportedTargetLanguages supportedTargetLanguage)
        {
            if (SupportedTargetLanguages.Java == supportedTargetLanguage)
            {
                return($"\r\n{locatorName} = @{locator.Attribute}({locator.ElementSearchTypePreference}=\"{locator.SearchString}\")");
            }
            if (SupportedTargetLanguages.CSharp == supportedTargetLanguage)
            {
                return($"\r\n{locatorName} = [{locator.Attribute}({locator.ElementSearchTypePreference}=\"{locator.SearchString}\")]");
            }
            return(string.Empty);
        }
        public string GenerateCode(SupportedTargetLanguages targetLanguage)
        {
            var result = string.Empty;

            // TODO: for the future use
            _targetLanguage = targetLanguage;

            // FilterOutWrongLocators();

            result = GenerateCodeEntryWithBestLocator();

            return(result);
        }
 string GetDropDownListLocator(SupportedTargetLanguages supportedTargetLanguage)
 {
     return(null != List?GetLocatorText(List, "list", supportedTargetLanguage) : string.Empty);
 }
 string GetDropDownValueLocator(SupportedTargetLanguages supportedTargetLanguage)
 {
     return(null != Value?GetLocatorText(Value, "value", supportedTargetLanguage) : string.Empty);
 }
 string GetDropDownRootLocator(SupportedTargetLanguages supportedTargetLanguage)
 {
     // return null != Root ? Root.SearchString : string.Empty;
     return(null != Root?GetLocatorText(Root, "root", supportedTargetLanguage) : string.Empty);
 }
 // TODO: get enumeration type name via Id that is bound, probably
 string GenerateAnnotationForComplexType(SupportedTargetLanguages supportedTargetLanguage)
 {
     EnumerationTypeName = GenerateEnumerationTypeName();
     return($"\r\n@J{GetNormalizedLocatorName()}({GetDropDownRootLocator(supportedTargetLanguage)}, {GetDropDownValueLocator(supportedTargetLanguage)}, {GetDropDownListLocator(supportedTargetLanguage)})");
 }
 public string GenerateCode(SupportedTargetLanguages targetLanguage)
 {
     // TODO: write code
     return(string.Empty);
 }