private LoadableDetachableModel getListViewModel()

in src/main/java/org/apache/directory/fortress/web/panel/RoleSearchModalPanel.java [139:200]


    private LoadableDetachableModel getListViewModel()
    {
        return new LoadableDetachableModel()
        {
            /** Default serialVersionUID */
            private static final long serialVersionUID = 1L;


            @Override
            protected Object load()
            {
                List<?> roles = null;
                try
                {
                    roleSelection = null;
                    if ( roleSearchVal == null )
                        roleSearchVal = "";

                    if ( isParentSearch )
                    {
                        Role childRole = reviewMgr.readRole( new Role( roleSearchVal ) );
                        if ( childRole != null )
                        {
                            List<Role> parentRoles = new ArrayList<>();
                            for ( String role : childRole.getParents() )
                            {
                                Role parent = reviewMgr.readRole( new Role( role ) );
                                parentRoles.add( parent );
                            }
                            roles = parentRoles;
                        }
                    }
                    else if ( isAdmin )
                    {
                        roles = delReviewMgr.findRoles( roleSearchVal );
                    }

                    else
                        roles = reviewMgr.findRoles( roleSearchVal );
                }
                catch ( org.apache.directory.fortress.core.SecurityException se )
                {
                    String error = "loadPanel caught SecurityException=" + se;
                    LOG.error( error );
                }

                // sort list by name:
                if( CollectionUtils.isNotEmpty( roles ))
                {
                    Collections.sort( (List<Role>)roles, new Comparator<Role>()
                    {
                        @Override
                        public int compare(Role r1, Role r2)
                        {
                            return r1.getName().compareToIgnoreCase( r2.getName() );
                        }
                    } );
                }
                return roles;
            }
        };
    }