Package org.apache.cayenne.query

Examples of org.apache.cayenne.query.Ordering


    /**
     * @return Ascending sort orderings on this property.
     */
    public Ordering asc() {
        return new Ordering(getName(), SortOrder.ASCENDING);
    }
View Full Code Here


    /**
     * @return Ascending case insensitive sort orderings on this property.
     */
    public Ordering ascInsensitive() {
        return new Ordering(getName(), SortOrder.ASCENDING_INSENSITIVE);
    }
View Full Code Here

    /**
     * @return Descending sort orderings on this property.
     */
    public Ordering desc() {
        return new Ordering(getName(), SortOrder.DESCENDING);
    }
View Full Code Here

    /**
     * @return Descending case insensitive sort orderings on this property.
     */
    public Ordering descInsensitive() {
        return new Ordering(getName(), SortOrder.DESCENDING_INSENSITIVE);
    }
View Full Code Here

        Appendable mainBuffer = this.out;

        try {
            while (it.hasNext()) {
                Ordering ord = it.next();

                // reset buffer to collect SQL for the single column, that we'll be reusing
                this.out = new StringBuilder();

                if (ord.isCaseInsensitive()) {
                    out.append("UPPER(");
                }

                Expression exp = ord.getSortSpec();

                if (exp.getType() == Expression.OBJ_PATH) {
                    appendObjPath(exp);
                }
                else if (exp.getType() == Expression.DB_PATH) {
                    appendDbPath(exp);
                }
                else {
                    throw new CayenneRuntimeException("Unsupported ordering expression: "
                            + exp);
                }

                // Close UPPER() modifier
                if (ord.isCaseInsensitive()) {
                    out.append(")");
                }

                String columnSQL = out.toString();
                mainBuffer.append(columnSQL);
                orderByColumnList.add(columnSQL);

                // "ASC" is a noop, omit it from the query
                if (!ord.isAscending()) {
                    mainBuffer.append(" DESC");
                }

                if (it.hasNext()) {
                    mainBuffer.append(", ");
View Full Code Here

        // case insensitive ordering appends extra columns
        // to the query when query is using DISTINCT...
        // verify that the result is not messed up

        SelectQuery query = new SelectQuery(Artist.class);
        Ordering ordering = new Ordering(Artist.ARTIST_NAME_PROPERTY, SortOrder.ASCENDING_INSENSITIVE);
        query.addOrdering(ordering);
        query.setDistinct(true);

        List<Artist> objects = context.performQuery(query);
        assertEquals(5, objects.size());
View Full Code Here

        }

        // check if such ordering already exists
        Iterator it = selectQuery.getOrderings().iterator();
        while (it.hasNext()) {
            Ordering ord = (Ordering) it.next();
            if (orderingPath.equals(ord.getSortSpecString())) {
                return;
            }
        }

        selectQuery.addOrdering(new Ordering(orderingPath, Ordering.ASC));
        int index = selectQuery.getOrderings().size() - 1;

        OrderingModel model = (OrderingModel) table.getModel();
        model.fireTableRowsInserted(index, index);
        mediator.fireQueryEvent(new QueryEvent(SelectQueryOrderingTab.this, selectQuery));
View Full Code Here

        if (selection < 0) {
            return;
        }

        OrderingModel model = (OrderingModel) table.getModel();
        Ordering ordering = model.getOrdering(selection);
        selectQuery.removeOrdering(ordering);

        model.fireTableRowsDeleted(selection, selection);
        mediator.fireQueryEvent(new QueryEvent(SelectQueryOrderingTab.this, selectQuery));
    }
View Full Code Here

        public int getRowCount() {
            return (selectQuery != null) ? selectQuery.getOrderings().size() : 0;
        }

        public Object getValueAt(int row, int column) {
            Ordering ordering = getOrdering(row);

            switch (column) {
                case 0:
                    return ordering.getSortSpecString();
                case 1:
                    return ordering.isAscending() ? Boolean.TRUE : Boolean.FALSE;
                case 2:
                    return ordering.isCaseInsensitive() ? Boolean.TRUE : Boolean.FALSE;
                default:
                    throw new IndexOutOfBoundsException("Invalid column: " + column);
            }
        }
View Full Code Here

        public boolean isCellEditable(int row, int column) {
            return column == 1 || column == 2;
        }

        public void setValueAt(Object value, int row, int column) {
            Ordering ordering = getOrdering(row);

            switch (column) {
                case 1:
                    ordering.setAscending(((Boolean) value).booleanValue());
                    mediator.fireQueryEvent(new QueryEvent(
                            SelectQueryOrderingTab.this,
                            selectQuery));
                    break;
                case 2:
                    ordering.setCaseInsensitive(((Boolean) value).booleanValue());
                    mediator.fireQueryEvent(new QueryEvent(
                            SelectQueryOrderingTab.this,
                            selectQuery));
                    break;
                default:
View Full Code Here

TOP

Related Classes of org.apache.cayenne.query.Ordering

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.