protected By getNewLocatorFromField()

in Java/JDI/jdi-uitest-web/src/main/java/com/epam/jdi/uitests/web/selenium/elements/WebCascadeInit.java [227:286]


    protected By getNewLocatorFromField(Field field) {
        JFindBy[] jfindbys = field.getAnnotationsByType(JFindBy.class);
        if (jfindbys.length > 1) {
            JFindBy groupFindBy = single(jfindbys, j -> group.equals(j.group()));
            if (groupFindBy != null)
                return findByToBy(groupFindBy);
            groupFindBy = single(jfindbys, j -> j.group().equals(""));
            if (groupFindBy != null)
                return findByToBy(groupFindBy);
        }
        if (field.isAnnotationPresent(JFindBy.class)) {
            return findByToBy(field.getAnnotation(JFindBy.class));
        }
        if (field.isAnnotationPresent(FindBy.class)) {
            return findByToBy(field.getAnnotation(FindBy.class));
        }
        if (field.isAnnotationPresent(Css.class)) {
            return findByToBy(field.getAnnotation(Css.class));
        }
        if (field.isAnnotationPresent(XPath.class)) {
            return findByToBy(field.getAnnotation(XPath.class));
        }
        if (field.isAnnotationPresent(ByText.class)) {
            return findByToBy(field.getAnnotation(ByText.class));
        }
        if (field.isAnnotationPresent(Attribute.class)) {
            return findByToBy(field.getAnnotation(Attribute.class));
        }
        if (field.isAnnotationPresent(ByClass.class)) {
            return findByToBy(field.getAnnotation(ByClass.class));
        }
        if (field.isAnnotationPresent(ById.class)) {
            return findByToBy(field.getAnnotation(ById.class));
        }
        if (field.isAnnotationPresent(ByName.class)) {
            return findByToBy(field.getAnnotation(ByName.class));
        }
        if (field.isAnnotationPresent(NgRepeat.class)) {
            return findByToBy(field.getAnnotation(NgRepeat.class));
        }
        if (field.isAnnotationPresent(NgBinding.class)) {
            return findByToBy(field.getAnnotation(NgBinding.class));
        }
        if (field.isAnnotationPresent(NgModel.class)) {
            return findByToBy(field.getAnnotation(NgModel.class));
        }
        if (field.isAnnotationPresent(ByTitle.class)) {
            return findByToBy(field.getAnnotation(ByTitle.class));
        }
        if (field.isAnnotationPresent(ByTag.class)) {
            return findByToBy(field.getAnnotation(ByTag.class));
        }
        if (field.isAnnotationPresent(ByType.class)) {
            return findByToBy(field.getAnnotation(ByType.class));
        }
        if (field.isAnnotationPresent(ByValue.class)) {
            return findByToBy(field.getAnnotation(ByValue.class));
        }
        return null;
    }