Examples of LDAPFilter


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

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


    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

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


    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

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


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

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

    {

        // 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

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


    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

Examples of org.apache.directory.studio.ldapbrowser.core.model.filter.LdapFilter

     * Creates a new instance of LdapFilterParser.
     */
    public LdapFilterParser()
    {
        this.scanner = new LdapFilterScanner();
        this.model = new LdapFilter();
    }
View Full Code Here

Examples of org.apache.directory.studio.ldapbrowser.core.model.filter.LdapFilter

    public void parse( String ldapFilter )
    {
        // reset state
        filterStack = new Stack<LdapFilter>();
        scanner.reset( ldapFilter );
        model = new LdapFilter();

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

        // check filter start
        if ( token.getType() == LdapFilterToken.LPAR )
        {
            // start top level filter
            model.setStartToken( token );
            filterStack.push( model );

            // loop till filter end or EOF
            do
            {
                // next token
                token = scanner.nextToken();

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

                        LdapFilter currentFilter = 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 = filterStack.pop();
                        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 = filterStack.peek();
                        LdapAndFilterComponent filterComponent = new LdapAndFilterComponent( currentFilter );
                        filterComponent.setStartToken( token );
                        handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.OR:
                    {
                        LdapFilter currentFilter = filterStack.peek();
                        LdapOrFilterComponent filterComponent = new LdapOrFilterComponent( currentFilter );
                        filterComponent.setStartToken( token );
                        handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.NOT:
                    {
                        LdapFilter currentFilter = filterStack.peek();
                        LdapNotFilterComponent filterComponent = new LdapNotFilterComponent( currentFilter );
                        filterComponent.setStartToken( token );
                        handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.ATTRIBUTE:
                    {
                        LdapFilter currentFilter = filterStack.peek();
                        LdapFilterItemComponent filterComponent = new LdapFilterItemComponent( currentFilter );
                        filterComponent.setAttributeToken( token );
                        handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.VALUE:
                    {
                        LdapFilter currentFilter = filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        if ( filterComponent instanceof LdapFilterItemComponent )
                        {
                            handleError( ( filterComponent instanceof LdapFilterItemComponent )
                                && ( ( LdapFilterItemComponent ) filterComponent ).setValueToken( token ), token,
                                currentFilter );
                        }
                        else if ( filterComponent instanceof LdapFilterExtensibleComponent )
                        {
                            handleError( ( filterComponent instanceof LdapFilterExtensibleComponent )
                                && ( ( LdapFilterExtensibleComponent ) filterComponent ).setValueToken( token ), token,
                                currentFilter );
                        }
                        else
                        {
                            handleError( false, token, currentFilter );
                        }
                        break;
                    }
                    case LdapFilterToken.EQUAL:
                    case LdapFilterToken.GREATER:
                    case LdapFilterToken.LESS:
                    case LdapFilterToken.APROX:
                    case LdapFilterToken.PRESENT:
                    case LdapFilterToken.SUBSTRING:
                    {
                        LdapFilter currentFilter = filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        if ( filterComponent instanceof LdapFilterItemComponent )
                        {
                            handleError( ( filterComponent instanceof LdapFilterItemComponent )
                                && ( ( LdapFilterItemComponent ) filterComponent ).setFiltertypeToken( token ), token,
                                currentFilter );
                        }
                        else if ( filterComponent instanceof LdapFilterExtensibleComponent )
                        {
                            handleError( ( filterComponent instanceof LdapFilterExtensibleComponent )
                                && ( ( LdapFilterExtensibleComponent ) filterComponent ).setEqualsToken( token ),
                                token, currentFilter );
                        }
                        else
                        {
                            handleError( false, token, currentFilter );
                        }
                        break;
                    }
                    case LdapFilterToken.WHITESPACE:
                    {
                        LdapFilter currentFilter = filterStack.peek();
                        currentFilter.addOtherToken( token );
                        break;
                    }
                    case LdapFilterToken.EXTENSIBLE_ATTRIBUTE:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterExtensibleComponent filterComponent = new LdapFilterExtensibleComponent(
                            currentFilter );
                        filterComponent.setAttributeToken( token );
                        handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.EXTENSIBLE_DNATTR_COLON:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        if ( filterComponent == null )
                        {
                            filterComponent = new LdapFilterExtensibleComponent( currentFilter );
                            ( ( LdapFilterExtensibleComponent ) filterComponent ).setDnAttrColonToken( token );
                            handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        }
                        else
                        {
                            handleError( ( filterComponent instanceof LdapFilterExtensibleComponent )
                                && ( ( LdapFilterExtensibleComponent ) filterComponent ).setDnAttrColonToken( token ),
                                token, currentFilter );
                        }
                        break;
                    }
                    case LdapFilterToken.EXTENSIBLE_DNATTR:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        handleError( ( filterComponent instanceof LdapFilterExtensibleComponent )
                            && ( ( LdapFilterExtensibleComponent ) filterComponent ).setDnAttrToken( token ), token,
                            currentFilter );
                        break;
                    }
                    case LdapFilterToken.EXTENSIBLE_MATCHINGRULEOID_COLON:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        if ( filterComponent == null )
                        {
                            filterComponent = new LdapFilterExtensibleComponent( currentFilter );
                            ( ( LdapFilterExtensibleComponent ) filterComponent ).setMatchingRuleColonToken( token );
                            handleError( currentFilter.setFilterComponent( filterComponent ), token, currentFilter );
                        }
                        else
                        {
                            handleError( ( filterComponent instanceof LdapFilterExtensibleComponent )
                                && ( ( LdapFilterExtensibleComponent ) filterComponent )
                                    .setMatchingRuleColonToken( token ), token, currentFilter );
                        }
                        break;
                    }
                    case LdapFilterToken.EXTENSIBLE_MATCHINGRULEOID:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        handleError( ( filterComponent instanceof LdapFilterExtensibleComponent )
                            && ( ( LdapFilterExtensibleComponent ) filterComponent ).setMatchingRuleToken( token ),
                            token, currentFilter );
                        break;
                    }
                    case LdapFilterToken.EXTENSIBLE_EQUALS_COLON:
                    {
                        LdapFilter currentFilter = ( LdapFilter ) filterStack.peek();
                        LdapFilterComponent filterComponent = currentFilter.getFilterComponent();
                        handleError( ( filterComponent instanceof LdapFilterExtensibleComponent )
                            && ( ( LdapFilterExtensibleComponent ) filterComponent ).setEqualsColonToken( token ),
                            token, currentFilter );
                        break;
                    }

                    case LdapFilterToken.EOF:
                    {
                        model.addOtherToken( token );
                        break;
                    }
                    default:
                    {
                        LdapFilter currentFilter = filterStack.peek();
                        handleError( false, token, currentFilter );
                    }
                }
            }
            while ( !filterStack.isEmpty() && token.getType() != LdapFilterToken.EOF );
View Full Code Here

Examples of org.apache.directory.studio.ldapbrowser.core.model.filter.LdapFilter

     * @see org.eclipse.jface.text.formatter.IFormattingStrategy#format(java.lang.String, boolean, java.lang.String, int[])
     */
    public String format( String content, boolean isLineStart, String indentation, int[] positions )
    {
        // this.parser.parse(content);
        LdapFilter model = parser.getModel();
        if ( model != null && model.isValid() )
        {
            sourceViewer.getDocument().set( getFormattedFilter( model, 0 ) );
        }

        return null;
View Full Code Here

Examples of org.apache.directory.studio.ldapbrowser.core.model.filter.LdapFilter

        String[] possibleObjectClasses = schema == null ? new String[0] : SchemaUtils.getNamesAsArray( schema
            .getObjectClassDescriptions() );
        Arrays.sort( possibleObjectClasses );

        List<ICompletionProposal> proposalList = new ArrayList<ICompletionProposal>();
        LdapFilter filter = parser.getModel().getFilter( offset );
        if ( filter != null && offset > 0 )
        {
            // case 0: open curly started, show templates and all attribute types
            if ( filter.getStartToken() != null && filter.getFilterComponent() == null )
            {
                if ( sourceViewer != null )
                {
                    ICompletionProposal[] templateProposals = super.computeCompletionProposals( sourceViewer, offset );
                    if ( templateProposals != null )
                    {
                        proposalList.addAll( Arrays.asList( templateProposals ) );
                    }
                }
                addPossibleAttributeTypes( proposalList, "", offset ); //$NON-NLS-1$
            }

            // case A: simple filter
            if ( filter.getFilterComponent() != null && filter.getFilterComponent() instanceof LdapFilterItemComponent )
            {
                LdapFilterItemComponent fc = ( LdapFilterItemComponent ) filter.getFilterComponent();

                // case A1: editing attribute type: show matching attribute types
                if ( fc.getStartToken().getOffset() <= offset
                    && offset <= fc.getStartToken().getOffset() + fc.getStartToken().getLength() )
                {
                    addPossibleAttributeTypes( proposalList, fc.getAttributeToken().getValue(), fc.getAttributeToken()
                        .getOffset() );
                }

                String attributeType = null;
                if ( schema != null && schema.hasAttributeTypeDescription( fc.getAttributeToken().getValue() ) )
                {
                    attributeType = fc.getAttributeToken().getValue();
                }

                // case A2: after attribte type: show possible filter types and extensible match options
                if ( attributeType != null )
                {
                    if ( ( fc.getAttributeToken().getOffset() <= offset || fc.getFilterToken() != null )
                        && offset <= fc.getAttributeToken().getOffset() + fc.getAttributeToken().getLength()
                            + ( fc.getFilterToken() != null ? fc.getFilterToken().getLength() : 0 ) )
                    {
                        //String attributeType = fc.getAttributeToken().getValue();
                        String filterType = fc.getFilterToken() != null ? fc.getFilterToken().getValue() : ""; //$NON-NLS-1$
                        int filterTypeOffset = fc.getAttributeToken().getOffset() + fc.getAttributeToken().getLength();
                        addPossibleFilterTypes( proposalList, attributeType, filterType, filterTypeOffset );
                    }
                }

                // case A3: editing objectClass attribute: show matching object classes
                if ( attributeType != null && SchemaConstants.OBJECT_CLASS_AT.equalsIgnoreCase( attributeType ) )
                {
                    if ( ( fc.getValueToken() != null && fc.getValueToken().getOffset() <= offset || fc
                        .getFilterToken() != null )
                        && offset <= fc.getAttributeToken().getOffset() + fc.getAttributeToken().getLength()
                            + ( fc.getFilterToken() != null ? fc.getFilterToken().getLength() : 0 )
                            + ( fc.getValueToken() != null ? fc.getValueToken().getLength() : 0 ) )
                    {
                        addPossibleObjectClasses( proposalList, fc.getValueToken() == null ? "" : fc.getValueToken() //$NON-NLS-1$
                            .getValue(), fc.getValueToken() == null ? offset : fc.getValueToken().getOffset() );
                    }
                }
            }

            // case B: extensible filter
            if ( filter.getFilterComponent() != null
                && filter.getFilterComponent() instanceof LdapFilterExtensibleComponent )
            {
                LdapFilterExtensibleComponent fc = ( LdapFilterExtensibleComponent ) filter.getFilterComponent();

                // case B1: editing extensible attribute type: show matching attribute types
                if ( fc.getAttributeToken() != null && fc.getAttributeToken().getOffset() <= offset
                    && offset <= fc.getAttributeToken().getOffset() + fc.getAttributeToken().getLength() )
                {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.