All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.persistence.jpa.jpql.ResolverVisitor Maven / Gradle / Ivy

There is a newer version: 5.0.0-B07
Show newest version
/*******************************************************************************
 * Copyright (c) 2006, 2013 Oracle and/or its affiliates. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse License v1.0 and Eclipse Distribution License v. 1.0
 * which accompanies this distribution.
 * The Eclipse 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
 *
 ******************************************************************************/
package org.eclipse.persistence.jpa.jpql;

/**
 * The interface is used to traverse some of the subclasses of {@link Resolver}. This visitor is
 * meant to traverse state field path expressions and collection-valued path expressions. The
 * hierarchy of resolving a path expression looks like this:
 * 

 * EntityResolver
 * or
 * CollectionValuedFieldResolver
 * or
 * TreatResolver
 *  |
 *  -> IdentificationVariableResolver
 *      |
 *      (optional KeyResolver or ValueResolver)
 *      |
 *      -> StateFieldResolver
 *          |
 *        1...n
 *          |
 *          -> StateFieldResolver or CollectionValuedFieldResolver
* * Provisional API: This interface is part of an interim API that is still under development and * expected to change significantly before reaching stability. It is available at this early stage * to solicit feedback from pioneering adopters on the understanding that any code that uses this * API will almost certainly be broken (repeatedly) as the API evolves. * * @version 2.4 * @since 2.3 * @author Pascal Filion */ public interface ResolverVisitor { /** * Visits the given {@link CollectionValuedFieldResolver}. * * @param resolver The {@link Resolver} to visit */ void visit(CollectionValuedFieldResolver resolver); /** * Visits the given {@link EntityResolver}. * * @param resolver The {@link Resolver} to visit */ void visit(EntityResolver resolver); /** * Visits the given {@link EnumLiteralResolver}. * * @param resolver The {@link Resolver} to visit */ void visit(EnumLiteralResolver resolver); /** * Visits the given {@link IdentificationVariableResolver}. * * @param resolver The {@link Resolver} to visit */ void visit(IdentificationVariableResolver resolver); /** * Visits the given {@link KeyResolver}. * * @param resolver The {@link Resolver} to visit */ void visit(KeyResolver resolver); /** * Visits the given {@link StateFieldResolver}. * * @param resolver The {@link Resolver} to visit */ void visit(StateFieldResolver resolver); /** * Visits the given {@link TreatResolver}. * * @param resolver The {@link Resolver} to visit */ void visit(TreatResolver resolver); /** * Visits the given {@link ValueResolver}. * * @param resolver The {@link Resolver} to visit */ void visit(ValueResolver resolver); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy