Package org.apache.beehive.netui.databinding.datagrid.api.filter

Examples of org.apache.beehive.netui.databinding.datagrid.api.filter.Filter


        }

        public List<Filter> getFilters() {
            LinkedList<Filter> filters = new LinkedList<Filter>();

            Filter filter = null;
            if(_customerId != null && !_customerId.equals("")) {
                filter = buildFilter(FILTER_EXPRESSION_CUSTOMERID,
                                     _customerId,
                                     FilterTypeHint.NUMERIC,
                                     FilterOperationHint.EQUAL);
View Full Code Here


        private Filter buildFilter(String filterExpression,
                                   Object value,
                                   FilterTypeHint typeHint,
                                   FilterOperationHint operationHint) {

            Filter filter = _dataGridConfig.createFilter();
            filter.setFilterExpression(filterExpression);
            filter.setTypeHint(typeHint);
            filter.setValue(value);
            filter.setOperationHint(operationHint);
            return filter;
        }
View Full Code Here

        String[] filters = nameAndFilters[1].split(DELIM_FILTER_TERM);

        ArrayList/*<Filter>*/ gridFilters = new ArrayList/*<Filter>*/();
        for(int i = 0; i < filters.length; i++) {
            String[] terms = filters[i].split(DELIM_FILTER);
            Filter filter = null;

            if(terms.length == 2 && terms[1].equals("*"))
                continue;
            else if(terms.length == 3) {
                FilterOperation fOp = SQLSupport.mapFilterAbbreviationToOperation(terms[1]);
                filter = _config.createFilter();
                filter.setFilterExpression(terms[0]);
                filter.setOperation(fOp);
                filter.setValue(terms[2]);
            }
            else {
                LOGGER.error(Bundle.getErrorString("DataGridStateCodec_IllegalFilter", new Object[]{filter}));
                continue;
            }
View Full Code Here

        boolean hasFilters = false;
        InternalStringBuilder sb = new InternalStringBuilder();
        sb.append(getGridName());
        sb.append(DELIM_GRID_NAME);
        for(int i = 0; i < filters.size(); i++) {
            Filter filter = (Filter)filters.get(i);

            if(hasFilters)
                sb.append(DELIM_FILTER_TERM);

            sb.append(filter.getFilterExpression());
            sb.append(DELIM_FILTER);
            sb.append(filter.getOperation().getAbbreviation());
            sb.append(DELIM_FILTER);
            sb.append(filter.getValue());

            hasFilters = true;
        }

        return sb.toString();
View Full Code Here

    /**
     * Create a {@link Filter} object.  The default implementation returned is {@link Filter}.
     * @return a filter
     */
    public Filter createFilter() {
        return new Filter();
    }
View Full Code Here

     * @param filters
     */
    private void internalCreateWhereFragment(InternalStringBuilder sql, List/*<Filter>*/ filters) {

        for(int i = 0; i < filters.size(); i++) {
            Filter filter = (Filter)filters.get(i);

            if(filter == null)
                continue;

            FilterOperation fOp = filter.getOperation();
            FilterOperationHint fOpHint = null;
            String fExpr = filter.getFilterExpression();
            if(fOp == null && filter.getOperationHint() != null) {
                fOpHint = filter.getOperationHint();
                fOp = mapFilterHintToOperation(fOpHint);
            }
            else {
                fOpHint = filter.getOperation().getOperationHint();
            }

            if(fOp == null) {
                String message = Bundle.getErrorString("DataGridFilter_NoFilterOperation", new Object[]{filter.getFilterExpression()});
                LOGGER.error(message);
                throw new IllegalFilterException(message);
            }

            /* todo: feature. pluggable conjunctions AND and OR here */
            if(i > 0)
                sql.append(" AND ");

            if(filter.getValue() == null) {
                if(fOpHint == FilterOperationHint.EQUAL) {
                    sql.append("(");
                    sql.append(fExpr);
                    sql.append(" IS NULL)");
                }
                else if(fOpHint == FilterOperationHint.NOT_EQUAL) {
                    sql.append("(");
                    sql.append(fExpr);
                    sql.append(" IS NOT NULL)");
                }
            }

            switch(fOpHint.getValue()) {
                case FilterOperationHint.INT_STARTS_WITH:
                case FilterOperationHint.INT_CONTAINS:
                    {
                        boolean bEscape = _config.getSupportsLikeEscapeClause();
                        String strValue = bEscape ? convertSQLPattern(filter.getValue()) : filter.getValue().toString();
                        strValue = convertSQLString(strValue);
                        sql.append("(").append(fExpr).append(" LIKE '");
                        if(fOpHint == FilterOperationHint.CONTAINS)
                            sql.append("%");
                        sql.append(strValue).append("%'");
                        if(bEscape)
                            sql.append(" ESCAPE '\\'");
                        sql.append(')');
                        break;
                    }
                case FilterOperationHint.INT_IS_NOT_EMPTY:
                    {
                        sql.append("(").append(fExpr).append(" IS NOT NULL)");
                        break;
                    }
                case FilterOperationHint.INT_IS_EMPTY:
                    {
                        sql.append("(").append(fExpr).append(" IS NULL)");
                        break;
                    }
                case FilterOperationHint.INT_EQUAL:
                case FilterOperationHint.INT_LESS_THAN:
                case FilterOperationHint.INT_LESS_THAN_OR_EQUAL:
                case FilterOperationHint.INT_GREATER_THAN:
                case FilterOperationHint.INT_GREATER_THAN_OR_EQUAL:
                case FilterOperationHint.INT_NOT_EQUAL:
                    {
                        /* todo: conider using SQLFragment from the DatabaseControl here. */
                        sql.append("(");
                        sql.append(fExpr);
                        sql.append(lookupOperator(fOpHint));
                        addParameter(sql, filter.getValue(), filter.getTypeHint());
                        if(fOpHint == FilterOperationHint.NOT_EQUAL) {
                            sql.append(" OR ");
                            sql.append(fExpr);
                            sql.append(" IS NULL");
                        }
                        sql.append(")");
                        break;
                    }
                case FilterOperationHint.INT_IS_ONE_OF:
                    {
                        Object[] arr;
                        if(filter.getValue().getClass().isArray())
                            arr = (Object[])filter.getValue();
                        else
                            arr = new Object[]{filter.getValue()};

                        if(arr.length == 0)
                            break;

                        sql.append("(");
                        sql.append(fExpr);
                        sql.append(" IN (");
                        String comma = "";
                        for(int j = 0; j < arr.length; j++) {
                            sql.append(comma);
                            /* todo: date handling. probably some type normalization required here */
                            addParameter(sql, arr[i], filter.getTypeHint());
                            comma = ",";
                        }
                        sql.append("))");
                        break;
                    }
View Full Code Here

        String[] filters = nameAndFilters[1].split(DELIM_FILTER_TERM);

        ArrayList/*<Filter>*/ gridFilters = new ArrayList/*<Filter>*/();
        for(int i = 0; i < filters.length; i++) {
            String[] terms = filters[i].split(DELIM_FILTER);
            Filter filter = null;

            if(terms.length == 2 && terms[1].equals("*"))
                continue;
            else if(terms.length == 3) {
                FilterOperation fOp = SQLSupport.mapFilterAbbreviationToOperation(terms[1]);
                filter = _config.createFilter();
                filter.setFilterExpression(terms[0]);
                filter.setOperation(fOp);
                filter.setValue(terms[2]);
            }
            else {
                LOGGER.error(Bundle.getErrorString("DataGridStateCodec_IllegalFilter", new Object[]{filter}));
                continue;
            }
View Full Code Here

        boolean hasFilters = false;
        InternalStringBuilder sb = new InternalStringBuilder();
        sb.append(getGridName());
        sb.append(DELIM_GRID_NAME);
        for(int i = 0; i < filters.size(); i++) {
            Filter filter = (Filter)filters.get(i);

            if(hasFilters)
                sb.append(DELIM_FILTER_TERM);

            sb.append(filter.getFilterExpression());
            sb.append(DELIM_FILTER);
            sb.append(filter.getOperation().getAbbreviation());
            sb.append(DELIM_FILTER);
            sb.append(filter.getValue());

            hasFilters = true;
        }

        return sb.toString();
View Full Code Here

    /**
     * Create a {@link Filter} object.  The default implementation returned is {@link Filter}.
     * @return a filter
     */
    public Filter createFilter() {
        return new Filter();
    }
View Full Code Here

     * @param filters
     */
    private void internalCreateWhereFragment(InternalStringBuilder sql, List/*<Filter>*/ filters) {

        for(int i = 0; i < filters.size(); i++) {
            Filter filter = (Filter)filters.get(i);

            if(filter == null)
                continue;

            FilterOperation fOp = filter.getOperation();
            FilterOperationHint fOpHint = null;
            String fExpr = filter.getFilterExpression();
            if(fOp == null && filter.getOperationHint() != null) {
                fOpHint = filter.getOperationHint();
                fOp = mapFilterHintToOperation(fOpHint);
            }
            else {
                fOpHint = filter.getOperation().getOperationHint();
            }

            if(fOp == null) {
                String message = Bundle.getErrorString("DataGridFilter_NoFilterOperation", new Object[]{filter.getFilterExpression()});
                LOGGER.error(message);
                throw new IllegalFilterException(message);
            }

            /* todo: feature. pluggable conjunctions AND and OR here */
            if(i > 0)
                sql.append(" AND ");

            if(filter.getValue() == null) {
                if(fOpHint == FilterOperationHint.EQUAL) {
                    sql.append("(");
                    sql.append(fExpr);
                    sql.append(" IS NULL)");
                }
                else if(fOpHint == FilterOperationHint.NOT_EQUAL) {
                    sql.append("(");
                    sql.append(fExpr);
                    sql.append(" IS NOT NULL)");
                }
            }

            switch(fOpHint.getValue()) {
                case FilterOperationHint.INT_STARTS_WITH:
                case FilterOperationHint.INT_CONTAINS:
                    {
                        boolean bEscape = _config.getSupportsLikeEscapeClause();
                        String strValue = bEscape ? convertSQLPattern(filter.getValue()) : filter.getValue().toString();
                        strValue = convertSQLString(strValue);
                        sql.append("(").append(fExpr).append(" LIKE '");
                        if(fOpHint == FilterOperationHint.CONTAINS)
                            sql.append("%");
                        sql.append(strValue).append("%'");
                        if(bEscape)
                            sql.append(" ESCAPE '\\'");
                        sql.append(')');
                        break;
                    }
                case FilterOperationHint.INT_IS_NOT_EMPTY:
                    {
                        sql.append("(").append(fExpr).append(" IS NOT NULL)");
                        break;
                    }
                case FilterOperationHint.INT_IS_EMPTY:
                    {
                        sql.append("(").append(fExpr).append(" IS NULL)");
                        break;
                    }
                case FilterOperationHint.INT_EQUAL:
                case FilterOperationHint.INT_LESS_THAN:
                case FilterOperationHint.INT_LESS_THAN_OR_EQUAL:
                case FilterOperationHint.INT_GREATER_THAN:
                case FilterOperationHint.INT_GREATER_THAN_OR_EQUAL:
                case FilterOperationHint.INT_NOT_EQUAL:
                    {
                        /* todo: conider using SQLFragment from the DatabaseControl here. */
                        sql.append("(");
                        sql.append(fExpr);
                        sql.append(lookupOperator(fOpHint));
                        addParameter(sql, filter.getValue(), filter.getTypeHint());
                        if(fOpHint == FilterOperationHint.NOT_EQUAL) {
                            sql.append(" OR ");
                            sql.append(fExpr);
                            sql.append(" IS NULL");
                        }
                        sql.append(")");
                        break;
                    }
                case FilterOperationHint.INT_IS_ONE_OF:
                    {
                        Object[] arr;
                        if(filter.getValue().getClass().isArray())
                            arr = (Object[])filter.getValue();
                        else
                            arr = new Object[]{filter.getValue()};

                        if(arr.length == 0)
                            break;

                        sql.append("(");
                        sql.append(fExpr);
                        sql.append(" IN (");
                        String comma = "";
                        for(int j = 0; j < arr.length; j++) {
                            sql.append(comma);
                            /* todo: date handling. probably some type normalization required here */
                            addParameter(sql, arr[i], filter.getTypeHint());
                            comma = ",";
                        }
                        sql.append("))");
                        break;
                    }
View Full Code Here

TOP

Related Classes of org.apache.beehive.netui.databinding.datagrid.api.filter.Filter

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.