/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.engine.profile;
Models an individual fetch within a profile.
Author: Steve Ebersole
/**
* Models an individual fetch within a profile.
*
* @author Steve Ebersole
*/
public class Fetch {
private final Association association;
private final Style style;
Constructs a Fetch
Params: - association – The association to be fetched
- style – How to fetch it
/**
* Constructs a Fetch
*
* @param association The association to be fetched
* @param style How to fetch it
*/
public Fetch(Association association, Style style) {
this.association = association;
this.style = style;
}
public Association getAssociation() {
return association;
}
public Style getStyle() {
return style;
}
The type or style of fetch. For the moment we limit this to
join and select, though technically subselect would be valid
here as as well; however, to support subselect here would
require major changes to the subselect loading code (which is
needed for other things as well anyway).
/**
* The type or style of fetch. For the moment we limit this to
* join and select, though technically subselect would be valid
* here as as well; however, to support subselect here would
* require major changes to the subselect loading code (which is
* needed for other things as well anyway).
*/
public enum Style {
Fetch via a join
/**
* Fetch via a join
*/
JOIN( "join" ),
Fetch via a subsequent select
/**
* Fetch via a subsequent select
*/
SELECT( "select" );
private final String name;
private Style(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
Parses a style given an externalized string representation
Params: - name – The externalized representation
Returns: The style; JOIN
is returned if not recognized
/**
* Parses a style given an externalized string representation
*
* @param name The externalized representation
*
* @return The style; {@link #JOIN} is returned if not recognized
*/
public static Style parse(String name) {
if ( SELECT.name.equals( name ) ) {
return SELECT;
}
else {
// the default...
return JOIN;
}
}
}
@Override
public String toString() {
return "Fetch[" + style + "{" + association.getRole() + "}]";
}
}