/******************************************************************************* * 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; import org.eclipse.persistence.expressions.*; /** * INTERNAL * <p><b>Purpose</b>: This node represnts a Parameter (?1) in an EJBQL * <p><b>Responsibilities</b>:<ul> * <li> Generate the correct expression for an AND in EJBQL * <li> Maintain a * <li> * </ul> * @author Jon Driscoll and Joel Lucuik * @since TopLink 4.0 */ public class ParameterNode extends Node { /** */ private String name; /** * Return a new ParameterNode. */ public ParameterNode() { super(); } /** * INTERNAL * Create a new ParameterNode with the passed string. * @param newVariableName java.lang.String */ public ParameterNode(String newParameterName) { setParameterName(newParameterName); } /** * INTERNAL */ public void validateParameter(ParseTreeContext context, Object contextType) { context.defineParameterType(name, contextType, getLine(), getColumn()); setType(context.getParameterType(name)); } /** * Generate the result expression, must use the base builder * to avoid getting multiple builders. */ public Expression generateExpression(GenerationContext context) { Expression whereClause = context.getBaseExpression().getParameter(getParameterName(), getType()); return whereClause; } /** * INTERNAL * Return the parameterName */ public String getAsString() { return getParameterName(); } /** * INTERNAL * Return the parameter name */ public String getParameterName() { return name; } /** */ public void setParameterName(String name) { this.name = name; } /** * INTERNAL * Yes this is a Parameter node */ public boolean isParameterNode() { return true; } }