Package org.apache.directory.ldapstudio.browser.core.model

Examples of org.apache.directory.ldapstudio.browser.core.model.ISearch


                return objects;
            }
        }
        else if ( parent instanceof ISearch )
        {
            ISearch search = ( ISearch ) parent;
            if ( search.getSearchResults() == null )
            {
                // return new Object[0];
                new SearchJob( new ISearch[]
                    { search } ).execute();
                return new String[]
                    { "Performing Search..." };
            }
            else if ( search.getSearchResults().length == 0 )
            {
                return new String[]
                    { "No Results" };
            }
            else if ( search.getSearchResults().length <= layout.getFoldingSize() || !layout.isUseFolding() )
            {
                ISearchResult[] results = search.getSearchResults();
                return results;
            }
            else
            {
                BrowserSearchResultPage[] srPages = null;
                if ( !this.searchToSearchResultPagesMap.containsKey( search ) )
                {
                    srPages = getSearchResultPages( search, 0, search.getSearchResults().length - 1 );
                    this.searchToSearchResultPagesMap.put( search, srPages );
                }
                else
                {
                    srPages = this.searchToSearchResultPagesMap.get( search );
                    if ( search.getSearchResults().length - 1 != srPages[srPages.length - 1].getLast() )
                    {
                        srPages = getSearchResultPages( search, 0, search.getSearchResults().length - 1 );
                        this.searchToSearchResultPagesMap.put( search, srPages );
                    }
                }
                return srPages;
            }
View Full Code Here


            BrowserSearchResultPage container = ( BrowserSearchResultPage ) obj;
            return "[" + ( container.getFirst() + 1 ) + "..." + ( container.getLast() + 1 ) + "]";
        }
        else if ( obj instanceof ISearch )
        {
            ISearch search = ( ISearch ) obj;
            ISearchResult[] results = search.getSearchResults();
            StringBuffer append = new StringBuffer( search.getName() );
            if ( results != null )
            {
                append.append( " (" ).append( results.length );
                if ( search.isCountLimitExceeded() )
                {
                    append.append( "+" );
                }
                append.append( ")" );
            }
View Full Code Here

        {
            return PlatformUI.getWorkbench().getSharedImages().getImage( ISharedImages.IMG_OBJ_FOLDER );
        }
        else if ( obj instanceof ISearch )
        {
            ISearch search = ( ISearch ) obj;
            if ( search.getConnection().isOpened() && search.getSearchResults() != null )
            {
                return BrowserUIPlugin.getDefault().getImage( BrowserUIConstants.IMG_SEARCH );
            }
            else
            {
View Full Code Here

            // rename in searches
            ISearch[] searches = connection.getSearchManager().getSearches();
            for ( int j = 0; j < searches.length; j++ )
            {
                ISearch search = searches[j];
                if ( search.getSearchResults() != null )
                {
                    ISearchResult[] searchResults = search.getSearchResults();
                    for ( int k = 0; k < searchResults.length; k++ )
                    {
                        ISearchResult result = searchResults[k];
                        if ( oldEntry.equals( result.getEntry() ) )
                        {
                            ISearchResult[] newsrs = new ISearchResult[searchResults.length - 1];
                            System.arraycopy( searchResults, 0, newsrs, 0, k );
                            System.arraycopy( searchResults, k + 1, newsrs, k, searchResults.length - k - 1 );
                            search.setSearchResults( newsrs );
                            searchResults = newsrs;
                            k--;
                            searchesToUpdateSet.add( search );
                        }
                    }
View Full Code Here

        {
            EventRegistry.fireEntryUpdated( new EntryRenamedEvent( oldEntry, newEntry ), this );
        }
        for ( Iterator it = searchesToUpdateSet.iterator(); it.hasNext(); )
        {
            ISearch search = ( ISearch ) it.next();
            EventRegistry.fireSearchUpdated( new SearchUpdateEvent( search, SearchUpdateEvent.SEARCH_PERFORMED ), this );
        }
    }
View Full Code Here

                        if ( object[i].length > 1 )
                        {
                            SearchParameter[] searchParameters = ( SearchParameter[] ) object[i][1];
                            for ( int k = 0; k < searchParameters.length; k++ )
                            {
                                ISearch search = new Search( conn, searchParameters[k] );
                                conn.getSearchManager().addSearch( search );
                            }
                        }

                        if ( object[i].length > 2 )
View Full Code Here

            handleReferralsMethod = parent.isReferral() ? IConnection.HANDLE_REFERRALS_FOLLOW
                : IConnection.HANDLE_REFERRALS_IGNORE;
        }

        // get children,
        ISearch search = new Search( null, parent.getConnection(), parent.getDn(), parent.getChildrenFilter(),
            ISearch.NO_ATTRIBUTES, scope, parent.getConnection().getCountLimit(),
            parent.getConnection().getTimeLimit(), derefAliasMethod, handleReferralsMethod, BrowserCorePlugin
                .getDefault().getPluginPreferences().getBoolean( BrowserCoreConstants.PREFERENCE_CHECK_FOR_CHILDREN ),
            BrowserCorePlugin.getDefault().getPluginPreferences().getBoolean(
                BrowserCoreConstants.PREFERENCE_SHOW_ALIAS_AND_REFERRAL_OBJECTS ), null );
        parent.getConnection().search( search, monitor );
        ISearchResult[] srs = search.getSearchResults();
        monitor.reportProgress( BrowserCoreMessages.bind( BrowserCoreMessages.jobs__init_entries_progress_subcount,
            new String[]
                { srs == null ? Integer.toString( 0 ) : Integer.toString( srs.length ), parent.getDn().toString() } ) );

        // fill children in search result
        if ( srs != null && srs.length > 0 )
        {

            /*
             * clearing old children before filling new subenties is
             * necessary to handle aliases and referrals.
             */
            IEntry[] connChildren = parent.getChildren();
            for ( int i = 0; connChildren != null && i < connChildren.length; i++ )
            {
                if ( connChildren[i] != null )
                {
                    parent.deleteChild( connChildren[i] );
                }
            }
            parent.setChildrenInitialized( false );

            for ( int i = 0; srs != null && i < srs.length; i++ )
            {
                if ( parent.isReferral() )
                {
                    ReferralBaseEntry referralBaseEntry = new ReferralBaseEntry( srs[i].getEntry().getConnection(),
                        srs[i].getEntry().getDn() );
                    parent.addChild( referralBaseEntry );
                    // System.out.println("Ref: " +
                    // referralBaseEntry.getUrl());
                }
                else if ( parent.isAlias() )
                {
                    AliasBaseEntry aliasBaseEntry = new AliasBaseEntry( srs[i].getEntry().getConnection(), srs[i]
                        .getEntry().getDn() );
                    parent.addChild( aliasBaseEntry );
                    // System.out.println("Ali: " +
                    // aliasBaseEntry.getUrl());
                }
                else
                {
                    parent.addChild( srs[i].getEntry() );
                }
            }
        }
        else
        {
            parent.setHasChildrenHint( false );
        }

        // get subentries
        ISearch subSearch = new Search( null, parent.getConnection(), parent.getDn(), parent.getChildrenFilter(),
            ISearch.NO_ATTRIBUTES, scope, parent.getConnection().getCountLimit(),
            parent.getConnection().getTimeLimit(), derefAliasMethod, handleReferralsMethod, BrowserCorePlugin
                .getDefault().getPluginPreferences().getBoolean( BrowserCoreConstants.PREFERENCE_CHECK_FOR_CHILDREN ),
            BrowserCorePlugin.getDefault().getPluginPreferences().getBoolean(
                BrowserCoreConstants.PREFERENCE_SHOW_ALIAS_AND_REFERRAL_OBJECTS ), new Control[]
                { Control.SUBENTRIES_CONTROL } );
        if ( BrowserCorePlugin.getDefault().getPluginPreferences().getBoolean(
            BrowserCoreConstants.PREFERENCE_FETCH_SUBENTRIES ) )
        {
            parent.getConnection().search( subSearch, monitor );
            ISearchResult[] subSrs = subSearch.getSearchResults();
            monitor.reportProgress( BrowserCoreMessages.bind( BrowserCoreMessages.jobs__init_entries_progress_subcount,
                new String[]
                    { subSrs == null ? Integer.toString( 0 ) : Integer.toString( subSrs.length ),
                        parent.getDn().toString() } ) );
            // fill children in search result
            if ( subSrs != null && subSrs.length > 0 )
            {

                for ( int i = 0; subSrs != null && i < subSrs.length; i++ )
                {
                    parent.addChild( subSrs[i].getEntry() );
                }
            }
        }

        // check exceeded limits / canceled
        parent.setHasMoreChildren( search.isCountLimitExceeded() || subSearch.isCountLimitExceeded()
            || monitor.isCanceled() );

        // set initialized state
        parent.setChildrenInitialized( true );

View Full Code Here

                    ReferralException re = ( ReferralException ) ce;
                    ISearch[] referralSearches = re.getReferralSearches();
                    for ( int i = 0; i < referralSearches.length; i++ )
                    {
                        ISearch referralSearch = referralSearches[i];

                        // open connection
                        if ( !referralSearch.getConnection().isOpened() )
                        {
                            referralSearch.getConnection().open( monitor );
                        }

                        // export recursive
                        export( referralSearch.getConnection(), referralSearch.getSearchParameter(), sheet, headerRow,
                            count, monitor, attributeNameMap, valueDelimiter, binaryEncoding, exportDn );
                    }
                }
            }
            else
View Full Code Here

            // delete from searches
            ISearch[] searches = connection.getSearchManager().getSearches();
            for ( int j = 0; j < searches.length; j++ )
            {
                ISearch search = searches[j];
                if ( search.getSearchResults() != null )
                {
                    ISearchResult[] searchResults = search.getSearchResults();
                    for ( int k = 0; k < searchResults.length; k++ )
                    {
                        ISearchResult result = searchResults[k];
                        if ( entryToDelete.equals( result.getEntry() ) )
                        {
                            ISearchResult[] newsrs = new ISearchResult[searchResults.length - 1];
                            System.arraycopy( searchResults, 0, newsrs, 0, k );
                            System.arraycopy( searchResults, k + 1, newsrs, k, searchResults.length - k - 1 );
                            search.setSearchResults( newsrs );
                            searchResults = newsrs;
                            k--;
                            searchesToUpdateSet.add( search );
                        }
                    }
View Full Code Here

                subParam.setAliasesDereferencingMethod( IConnection.DEREFERENCE_ALIASES_NEVER );
                subParam.setReferralsHandlingMethod( IConnection.HANDLE_REFERRALS_IGNORE );
                subParam.setReturningAttributes( new String[]
                    { IAttribute.OBJECTCLASS_ATTRIBUTE, IAttribute.REFERRAL_ATTRIBUTE } );
                subParam.setCountLimit( 100 );
                ISearch search = new Search( entry.getConnection(), subParam );
                entry.getConnection().search( search, monitor );

                ISearchResult[] srs = search.getSearchResults();
                for ( int i = 0; !monitor.isCanceled() && srs != null && i < srs.length; i++ )
                {
                    IEntry childEntry = srs[i].getEntry();
                    numberOfDeletedEntries = this.deleteEntryRecursive( childEntry, true, numberOfDeletedEntries,
                        monitor );
                    numberInBatch++;
                }
            }
            while ( numberInBatch > 0 && !monitor.isCanceled() && !monitor.errorsReported() );

            if ( !monitor.isCanceled() && !monitor.errorsReported() )
            {

                // check for referrals
                if ( !refInitialized )
                {
                    SearchParameter param = new SearchParameter();
                    param.setSearchBase( entry.getDn() );
                    param.setFilter( ISearch.FILTER_TRUE );
                    param.setScope( ISearch.SCOPE_OBJECT );
                    param.setAliasesDereferencingMethod( IConnection.DEREFERENCE_ALIASES_NEVER );
                    param.setReferralsHandlingMethod( IConnection.HANDLE_REFERRALS_IGNORE );
                    param.setReturningAttributes( new String[]
                        { IAttribute.OBJECTCLASS_ATTRIBUTE, IAttribute.REFERRAL_ATTRIBUTE } );
                    ISearch search = new Search( entry.getConnection(), param );
                    entry.getConnection().search( search, monitor );

                    ISearchResult[] srs = search.getSearchResults();
                    if ( !monitor.isCanceled() && srs != null && srs.length == 1 )
                    {
                        entry = srs[0].getEntry();
                    }
                }
View Full Code Here

TOP

Related Classes of org.apache.directory.ldapstudio.browser.core.model.ISearch

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.