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

Examples of org.apache.directory.ldapstudio.browser.core.model.filter.LdapFilter



    public String format( String content, boolean isLineStart, String indentation, int[] positions )
    {
        // this.parser.parse(content);
        LdapFilter model = this.parser.getModel();
        if ( model != null && model.isValid() )
        {
            this.sourceViewer.getDocument().set( get( model, 0 ) );
        }

        return null;
View Full Code Here



    private ICompletionProposal[] computeCompletionProposals( int offset )
    {
        List proposalList = new ArrayList();
        LdapFilter filter = this.parser.getModel().getFilter( offset );
        if ( filter != null )
        {
            if ( filter.getStartToken() != null && filter.getFilterComponent() == null )
            {

                if ( sourceViewer != null )
                {
                    ICompletionProposal[] templateProposals = super.computeCompletionProposals( sourceViewer, offset );
                    if ( templateProposals != null )
                    {
                        proposalList.addAll( Arrays.asList( templateProposals ) );
                    }
                }

                for ( int k = 0; k < this.possibleAttributeTypes.length; k++ )
                {
                    ICompletionProposal proposal = new CompletionProposal( this.possibleAttributeTypes[k], offset, 0,
                        this.possibleAttributeTypes[k].length() );
                    proposalList.add( proposal );
                }
            }
            else if ( filter.getFilterComponent() instanceof LdapFilterItemComponent
                && filter.getFilterComponent().getStartToken().getOffset() <= offset
                && offset <= filter.getFilterComponent().getStartToken().getOffset()
                    + filter.getFilterComponent().getStartToken().getLength() )
            {
                // show matching attribute types
                LdapFilterItemComponent fc = ( LdapFilterItemComponent ) filter.getFilterComponent();
                for ( int k = 0; k < this.possibleAttributeTypes.length; k++ )
                {
                    if ( this.possibleAttributeTypes[k].startsWith( fc.getAttributeToken().getValue() ) )
                    {
                        ICompletionProposal proposal = new CompletionProposal( this.possibleAttributeTypes[k], fc
View Full Code Here


    public IRegion match( IDocument document, int offset )
    {

        LdapFilter model = this.parser.getModel();
        if ( model != null )
        {
            LdapFilter filter = this.parser.getModel().getFilter( offset - 1 );

            if ( filter != null && filter.getStartToken() != null && filter.getStopToken() != null )
            {

                int left = filter.getStartToken().getOffset();
                int right = filter.getStopToken().getOffset();

                if ( left == offset - 1 )
                {
                    this.anchor = LEFT;
                    IRegion region = new Region( left, right - left + 1 );
View Full Code Here


    public LdapFilterParser()
    {
        this.scanner = new LdapFilterScanner();
        this.model = new LdapFilter();
    }
View Full Code Here

    {

        // reset state
        this.filterStack = new Stack();
        this.scanner.setFilter( ldapFilter );
        this.model = new LdapFilter();

        // handle error tokens before filter
        LdapFilterToken token = this.scanner.nextToken();
        while ( token.getType() != LdapFilterToken.LPAR && token.getType() != LdapFilterToken.EOF )
        {
            this.handleError( false, token, this.model );
            token = scanner.nextToken();
        }

        // check filter start
        if ( token.getType() == LdapFilterToken.LPAR )
        {

            // start top level filter
            this.model.setStartToken( token );
            filterStack.push( this.model );

            // loop till filter end or EOF
            do
            {

                // next token
                token = this.scanner.nextToken();

                switch ( token.getType() )
                {
                    case LdapFilterToken.LPAR:
                    {
                        LdapFilter newFilter = new LdapFilter();
                        newFilter.setStartToken( token );

                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        if ( filterComponent != null && filterComponent.addFilter( newFilter ) )
                        {
                            filterStack.push( newFilter );
                        }
                        else
                        {
                            currentFilter.addOtherToken( token );
                        }

                        break;
                    }
                    case LdapFilterToken.RPAR:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.pop();
                        this.handleError( currentFilter.setStopToken( token ), token, currentFilter );
                        /*
                         * if(!filterStack.isEmpty()) { LdapFilter parentFilter =
                         * (LdapFilter) filterStack.peek(); LdapFilterComponent
                         * filterComponent = parentFilter.getFilterComponent();
                         * filterComponent.addFilter(currentFilter); }
                         */
                        break;
                    }
                    case LdapFilterToken.AND:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapAndFilterComponent filterComponent = new LdapAndFilterComponent( currentFilter );
                        filterComponent.setStartToken( token );
                        this.handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.OR:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapOrFilterComponent filterComponent = new LdapOrFilterComponent( currentFilter );
                        filterComponent.setStartToken( token );
                        this.handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.NOT:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapNotFilterComponent filterComponent = new LdapNotFilterComponent( currentFilter );
                        filterComponent.setStartToken( token );
                        this.handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.ATTRIBUTE:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterItemComponent filterComponent = new LdapFilterItemComponent( currentFilter );
                        filterComponent.setAttributeToken( token );
                        this.handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.VALUE:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        this.handleError( ( filterComponent instanceof LdapFilterItemComponent )
                            && ( ( LdapFilterItemComponent ) filterComponent ).setValueToken( token ), token,
                            currentFilter );
                        break;
                    }
                    case LdapFilterToken.EQUAL:
                    case LdapFilterToken.GREATER:
                    case LdapFilterToken.LESS:
                    case LdapFilterToken.APROX:
                    case LdapFilterToken.PRESENT:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        this.handleError( ( filterComponent instanceof LdapFilterItemComponent )
                            && ( ( LdapFilterItemComponent ) filterComponent ).setFiltertypeToken( token ), token,
                            currentFilter );
                        break;
                    }
                    case LdapFilterToken.WHITESPACE:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        currentFilter.addOtherToken( token );
                        break;
                    }
                    case LdapFilterToken.EOF:
                    {
                        this.model.addOtherToken( token );
                        break;
                    }
                    default:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        this.handleError( false, token, currentFilter );
                    }
                }
            }
            while ( !filterStack.isEmpty() && token.getType() != LdapFilterToken.EOF );
View Full Code Here


    public void customizeDocumentCommand( IDocument d, DocumentCommand c )
    {

        LdapFilter filter = this.parser.getModel().getFilter( c.offset );

        // this.dumpDocumentCommand(c);

        if ( c.length == 0 && c.text != null )
        {
            // new line
            if ( TextUtilities.endsWith( d.getLegalLineDelimiters(), c.text ) != -1 )
            {
                super.customizeDocumentCommand( d, c );
                if ( filter != null && filter.getFilterComponent() != null )
                {
                    LdapFilterToken startToken = filter.getFilterComponent().getStartToken();
                    if ( startToken != null
                        && ( startToken.getType() == LdapFilterToken.AND || startToken.getType() == LdapFilterToken.OR ) )
                    {

                        if ( startToken.getOffset() == c.offset - 1 )
                        {
                            c.text += INDENT_STRING;
                            if ( filter.getStopToken() != null && filter.getStopToken().getOffset() == c.offset )
                            {
                                c.caretOffset = c.offset + c.text.length();
                                c.shiftsCaret = false;
                                c.text += "\n";
                                super.customizeDocumentCommand( d, c );
                            }
                        }
                    }
                }
            }

            // filter start/stop
            if ( c.text.equals( "(" ) )
            {
                c.text = "()";
                c.caretOffset = c.offset + 1;
                c.shiftsCaret = false;
                this.autoRightParenthesisFilterOffset = c.offset;
            }
            else if ( c.text.equals( ")" ) )
            {
                LdapFilter filter2 = this.parser.getModel().getFilter( this.autoRightParenthesisFilterOffset );
                if ( filter2 != null && filter2.getStopToken() != null
                    && filter2.getStopToken().getOffset() == c.offset )
                {
                    c.text = "";
                    c.caretOffset = c.offset + 1;
                    c.shiftsCaret = false;
                }
View Full Code Here


    private ICompletionProposal[] computeCompletionProposals( int offset )
    {
        List proposalList = new ArrayList();
        LdapFilter filter = this.parser.getModel().getFilter( offset );
        if ( filter != null )
        {
            if ( filter.getStartToken() != null && filter.getFilterComponent() == null )
            {

                if ( sourceViewer != null )
                {
                    ICompletionProposal[] templateProposals = super.computeCompletionProposals( sourceViewer, offset );
                    if ( templateProposals != null )
                    {
                        proposalList.addAll( Arrays.asList( templateProposals ) );
                    }
                }

                for ( int k = 0; k < this.possibleAttributeTypes.length; k++ )
                {
                    ICompletionProposal proposal = new CompletionProposal( this.possibleAttributeTypes[k], offset, 0,
                        this.possibleAttributeTypes[k].length() );
                    proposalList.add( proposal );
                }
            }
            else if ( filter.getFilterComponent() instanceof LdapFilterItemComponent
                && filter.getFilterComponent().getStartToken().getOffset() <= offset
                && offset <= filter.getFilterComponent().getStartToken().getOffset()
                    + filter.getFilterComponent().getStartToken().getLength() )
            {
                // show matching attribute types
                LdapFilterItemComponent fc = ( LdapFilterItemComponent ) filter.getFilterComponent();
                for ( int k = 0; k < this.possibleAttributeTypes.length; k++ )
                {
                    if ( this.possibleAttributeTypes[k].startsWith( fc.getAttributeToken().getValue() ) )
                    {
                        ICompletionProposal proposal = new CompletionProposal( this.possibleAttributeTypes[k], fc
View Full Code Here


    public IRegion match( IDocument document, int offset )
    {

        LdapFilter model = this.parser.getModel();
        if ( model != null )
        {
            LdapFilter filter = this.parser.getModel().getFilter( offset - 1 );

            if ( filter != null && filter.getStartToken() != null && filter.getStopToken() != null )
            {

                int left = filter.getStartToken().getOffset();
                int right = filter.getStopToken().getOffset();

                if ( left == offset - 1 )
                {
                    this.anchor = LEFT;
                    IRegion region = new Region( left, right - left + 1 );
View Full Code Here


    public void customizeDocumentCommand( IDocument d, DocumentCommand c )
    {

        LdapFilter filter = this.parser.getModel().getFilter( c.offset );

        // this.dumpDocumentCommand(c);

        if ( c.length == 0 && c.text != null )
        {
            // new line
            if ( TextUtilities.endsWith( d.getLegalLineDelimiters(), c.text ) != -1 )
            {
                super.customizeDocumentCommand( d, c );
                if ( filter != null && filter.getFilterComponent() != null )
                {
                    LdapFilterToken startToken = filter.getFilterComponent().getStartToken();
                    if ( startToken != null
                        && ( startToken.getType() == LdapFilterToken.AND || startToken.getType() == LdapFilterToken.OR ) )
                    {

                        if ( startToken.getOffset() == c.offset - 1 )
                        {
                            c.text += INDENT_STRING;
                            if ( filter.getStopToken() != null && filter.getStopToken().getOffset() == c.offset )
                            {
                                c.caretOffset = c.offset + c.text.length();
                                c.shiftsCaret = false;
                                c.text += "\n";
                                super.customizeDocumentCommand( d, c );
                            }
                        }
                    }
                }
            }

            // filter start/stop
            if ( c.text.equals( "(" ) )
            {
                c.text = "()";
                c.caretOffset = c.offset + 1;
                c.shiftsCaret = false;
                this.autoRightParenthesisFilterOffset = c.offset;
            }
            else if ( c.text.equals( ")" ) )
            {
                LdapFilter filter2 = this.parser.getModel().getFilter( this.autoRightParenthesisFilterOffset );
                if ( filter2 != null && filter2.getStopToken() != null
                    && filter2.getStopToken().getOffset() == c.offset )
                {
                    c.text = "";
                    c.caretOffset = c.offset + 1;
                    c.shiftsCaret = false;
                }
View Full Code Here


    public String format( String content, boolean isLineStart, String indentation, int[] positions )
    {
        // this.parser.parse(content);
        LdapFilter model = this.parser.getModel();
        if ( model != null && model.isValid() )
        {
            this.sourceViewer.getDocument().set( get( model, 0 ) );
        }

        return null;
View Full Code Here

TOP

Related Classes of org.apache.directory.ldapstudio.browser.core.model.filter.LdapFilter

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.