Package org.eclipse.persistence.jpa.jpql.parser

Examples of org.eclipse.persistence.jpa.jpql.parser.Expression


    int result = 0;

    // Validate the first expression
    if (expression.hasFirstExpression()) {
      Expression firstExpression = expression.getFirstExpression();

      // Special case for state field path expression, association field is not allowed
      StateFieldPathExpression pathExpression = getStateFieldPathExpression(firstExpression);

      if (pathExpression != null) {
        boolean valid = validateStateFieldPathExpression(pathExpression, PathType.BASIC_FIELD_ONLY);
        updateStatus(result, 0, valid);
      }
      else {
        firstExpression.accept(this);
      }
    }

    // Validate the second expression
    expression.getSecondExpression().accept(this);
View Full Code Here


    int result = 0;

    // Validate the first expression
    if (expression.hasFirstExpression()) {
      Expression firstExpression = expression.getFirstExpression();

      // Special case for state field path expression, association field is not allowed
      StateFieldPathExpression pathExpression = getStateFieldPathExpression(firstExpression);

      if (pathExpression != null) {
        boolean valid = validateStateFieldPathExpression(pathExpression, PathType.BASIC_FIELD_ONLY);
        updateStatus(result, 0, valid);
      }
      else {
        firstExpression.accept(this);
      }
    }

    // Validate the second expression
    expression.getSecondExpression().accept(this);
View Full Code Here

   *
   * @param expression The {@link validateSelectClause} to validate
   */
  protected void validateSelectClause(SelectClause expression) {

    Expression selectExpression = expression.getSelectExpression();

    // Special case for state field path expression, all types are allowed
    StateFieldPathExpression pathExpression = getStateFieldPathExpression(selectExpression);

    if (pathExpression != null) {
      validateStateFieldPathExpression(pathExpression, selectClausePathExpressionPathType());
    }
    else {
      selectExpression.accept(this);
    }
  }
View Full Code Here

    int result = 0;

    // Validate the first expression
    if (expression.hasFirstExpression()) {
      Expression firstExpression = expression.getFirstExpression();

      // Special case for state field path expression, association field is not allowed
      StateFieldPathExpression pathExpression = getStateFieldPathExpression(firstExpression);

      if (pathExpression != null) {
        boolean valid = validateStateFieldPathExpression(pathExpression, PathType.BASIC_FIELD_ONLY);
        updateStatus(result, 0, valid);
      }
      else {
        firstExpression.accept(this);
      }
    }

    // Validate the second expression
    expression.getSecondExpression().accept(this);
View Full Code Here

   */
  protected boolean validateTypeExpression(TypeExpression expression) {

    // Validate the expression
    if (expression.hasEncapsulatedExpression()) {
      Expression encapsulatedExpression = expression.getExpression();

      // Special case for state field path expression, only association field is allowed
      StateFieldPathExpression pathExpression = getStateFieldPathExpression(encapsulatedExpression);

      if (pathExpression != null) {
        return validateStateFieldPathExpression(pathExpression, PathType.ASSOCIATION_FIELD_ONLY);
      }
      else {
        encapsulatedExpression.accept(this);
      }
    }

    return true;
  }
View Full Code Here

  /**
   * {@inheritDoc}
   */
  public void visit(SelectClause expression) {

    Expression selectExpression = expression.getSelectExpression();

    // visit(CollectionExpression) iterates through the children but for a
    // SELECT clause, a CollectionExpression means the result type is Object[]
    CollectionExpression collectionExpression = getCollectionExpression(selectExpression);

    if (collectionExpression != null) {
      resolver = buildClassResolver(Object[].class);
    }
    else {
      selectExpression.accept(this);
    }
  }
View Full Code Here

  /**
   * {@inheritDoc}
   */
  public void visit(SelectClause expression) {

    Expression selectExpression = expression.getSelectExpression();

    // visit(CollectionExpression) iterates through the children but for a
    // SELECT clause, a CollectionExpression means the result type is Object[]
    CollectionExpression collectionExpression = getCollectionExpression(selectExpression);

    if (collectionExpression != null) {
      type = Object[].class;
    }
    else {
      selectExpression.accept(this);
    }
  }
View Full Code Here

   * {@inheritDoc}
   */
  @Override
  public void visit(BetweenExpression expression) {

    Expression betweenExpression = expression.getExpression();
    Expression lowerBound        = expression.getLowerBoundExpression();
    Expression upperBound        = expression.getUpperBoundExpression();

    // The input parameter is the expression to be tested within the range of values
    if (betweenExpression.isAncestor(inputParameter)) {

      if (currentExpression == null) {
        currentExpression = expression;
        lowerBound.accept(this);
        currentExpression = null;
      }
      else {
        type = null;
        ignoreType = true;
        expression = null;
      }

      // TODO: Not sure how to test this, should get the type for the lower and upper bounds
      //       and then we compare each other???
    }
    // The input parameter is on the lower bound side, traverse the upper bound
    else if (lowerBound.isAncestor(inputParameter)) {
      if (currentExpression == null) {
        currentExpression = expression;
        upperBound.accept(this);
        currentExpression = null;
      }
      else {
        type = null;
        ignoreType = true;
        expression = null;
      }
    }
    // The input parameter is on the upper bound side, traverse the lower bound
    else if (upperBound.isAncestor(inputParameter)) {
      if (currentExpression == null) {
        currentExpression = expression;
        lowerBound.accept(this);
        currentExpression = null;
      }
View Full Code Here

   * {@inheritDoc}
   */
  @Override
  public void visit(CollectionMemberExpression expression) {

    Expression pathExpression = expression.getCollectionValuedPathExpression();

    if (pathExpression.isAncestor(inputParameter)) {
      type = Collection.class;
    }
    else {
      type = Object.class;
    }
View Full Code Here

   * {@inheritDoc}
   */
  @Override
  public void visit(LikeExpression expression) {

    Expression patternValue     = expression.getPatternValue();
    Expression stringExpression = expression.getStringExpression();
    Expression escapeCharacter  = expression.getEscapeCharacter();

    if (escapeCharacter == inputParameter) {
      this.type = Character.class;
    }
    else if (patternValue.isAncestor(inputParameter)) {
View Full Code Here

TOP

Related Classes of org.eclipse.persistence.jpa.jpql.parser.Expression

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.