protected Comparator getFacesMessageComparator()

in core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultFacesMessageStorage.java [93:146]


    protected Comparator<FacesMessageHolder> getFacesMessageComparator()
    {
        return new Comparator<FacesMessageHolder>() {
            public int compare(FacesMessageHolder holder1, FacesMessageHolder holder2)
            {
                if(holder1.getFacesMessage().getSeverity() == null)
                {
                    return 1;
                }
                if(isSameSeverity(holder1, holder2))
                {
                    return compareMessageText(holder1.getFacesMessage(), holder2.getFacesMessage());
                }

                if(holder1.getFacesMessage().getSeverity().getOrdinal() >
                        holder2.getFacesMessage().getSeverity().getOrdinal())
                {
                    return -1;
                }
                else
                {
                    return 1;
                }
            }

            private int compareMessageText(FacesMessage facesMessage1, FacesMessage facesMessage2)
            {
                String text1 = facesMessage1.getDetail();
                String text2 = facesMessage2.getDetail();

                if(text1 == null)
                {
                    text1 = facesMessage1.getSummary();
                }

                if(text2 == null)
                {
                    text2 = facesMessage2.getSummary();
                }

                if(text1 == null)
                {
                    return 1;
                }

                if(text2 == null)
                {
                    return -1;
                }

                return text1.compareToIgnoreCase(text2);
            }
        };
    }