public static boolean aroundIsValueLine()

in src/com/intellij/idea/plugin/hybris/impex/utils/ImpexPsiUtils.java [141:201]


    public static boolean aroundIsValueLine(@Nullable final PsiElement element) {
        if (element == null) {
            return false;
        }

        if (isImpexValueLine(element)
            || isImpexValueLine(element.getParent())
            || isImpexValueLine(element.getParent().getParent())) {
            return true;
        }

        boolean prevElementIsValueLine = false;
        PsiElement prevSibling = PsiTreeUtil.skipSiblingsBackward(
            element,
            PsiWhiteSpace.class,
            PsiComment.class,
            ImpexBeanShell.class,
            ImpexComment.class
        );
        while (null != prevSibling) {
            if (isHeaderLine(prevSibling) || isImpexValueLine(prevSibling) || isUserRightsMacros(prevSibling)) {
                prevElementIsValueLine = true;
                break;
            }
            prevSibling = PsiTreeUtil.skipSiblingsBackward(
                prevSibling,
                PsiWhiteSpace.class,
                PsiComment.class,
                ImpexBeanShell.class,
                ImpexComment.class
            );
        }


        boolean nextElementIsValueLine = false;
        PsiElement nextSibling = PsiTreeUtil.skipSiblingsForward(element,
                                                                 PsiWhiteSpace.class, ImpexBeanShell.class,
                                                                 ImpexComment.class
        );

        while (null != nextSibling) {
            if (isImpexValueLine(nextSibling)) {
                nextElementIsValueLine = true;
                break;
            }
            if (isHeaderLine(nextSibling)) {
                nextElementIsValueLine = false;
                break;
            }
            if (isUserRightsMacros(nextSibling)) {
                nextElementIsValueLine = false;
                break;
            }
            nextSibling = PsiTreeUtil.skipSiblingsForward(nextSibling,
                                                          PsiWhiteSpace.class, ImpexBeanShell.class,
                                                          ImpexComment.class
            );
        }

        return nextElementIsValueLine && prevElementIsValueLine;
    }