/******************************************************************************* * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.internal.jpa.parsing; /** * INTERNAL * <p><b>Purpose</b>: Represent a Sort Direction for an * Order By Item * <p><b>Responsibilities</b>:<ul> * <li> Apply itself to a query correctly * * This node represents either an ASC or DESC encountered on the input stream * e.g SELECT ... FROM ... WHERE ... ORDER BY emp.salary ASC * </ul> * @author Jon Driscoll * @since TopLink 5.0 */ import org.eclipse.persistence.expressions.Expression; import org.eclipse.persistence.expressions.ExpressionOperator; public class SortDirectionNode extends Node { private int sortDirection = ExpressionOperator.Ascending; /** * INTERNAL * Return the parent expression unmodified */ public Expression addToExpression(Expression parentExpression, GenerationContext context) { return parentExpression.getFunction(getSortDirection()); } public void useAscending() { setSortDirection(ExpressionOperator.Ascending); } public void useDescending() { setSortDirection(ExpressionOperator.Descending); } // Accessors public int getSortDirection() { return sortDirection; } public void setSortDirection(int sortDirection) { this.sortDirection = sortDirection; } }