package org.jboss.ejb.plugins.cmp.jdbc.metadata;
import java.lang.reflect.Method;
import org.jboss.metadata.QueryMetaData;
public final class JDBCQlQueryMetaData implements JDBCQueryMetaData
{
private final Method method;
private final String ejbQl;
private final boolean resultTypeMappingLocal;
private final JDBCReadAheadMetaData readAhead;
private final Class compiler;
private final boolean lazyResultSetLoading;
public JDBCQlQueryMetaData(QueryMetaData queryMetaData, Method method, Class qlCompiler, boolean lazyResultSetLoading)
{
this.method = method;
this.readAhead = JDBCReadAheadMetaData.DEFAULT;
ejbQl = queryMetaData.getEjbQl();
resultTypeMappingLocal = (queryMetaData.getResultTypeMapping() == QueryMetaData.LOCAL);
compiler = qlCompiler;
this.lazyResultSetLoading = lazyResultSetLoading;
}
public JDBCQlQueryMetaData(JDBCQlQueryMetaData defaults,
JDBCReadAheadMetaData readAhead,
Class compiler,
boolean lazyResultSetLoading)
{
this.method = defaults.getMethod();
this.readAhead = readAhead;
this.ejbQl = defaults.getEjbQl();
this.resultTypeMappingLocal = defaults.resultTypeMappingLocal;
this.compiler = compiler;
this.lazyResultSetLoading = lazyResultSetLoading;
}
public JDBCQlQueryMetaData(JDBCQlQueryMetaData jdbcQueryMetaData,
Method method,
JDBCReadAheadMetaData readAhead)
{
this.method = method;
this.readAhead = readAhead;
ejbQl = jdbcQueryMetaData.getEjbQl();
resultTypeMappingLocal = jdbcQueryMetaData.resultTypeMappingLocal;
compiler = jdbcQueryMetaData.compiler;
lazyResultSetLoading = jdbcQueryMetaData.lazyResultSetLoading;
}
public Method getMethod()
{
return method;
}
public Class getQLCompilerClass()
{
return compiler;
}
public String getEjbQl()
{
return ejbQl;
}
public boolean isResultTypeMappingLocal()
{
return resultTypeMappingLocal;
}
public JDBCReadAheadMetaData getReadAhead()
{
return readAhead;
}
public boolean isLazyResultSetLoading()
{
return lazyResultSetLoading;
}
public boolean equals(Object o)
{
if(o instanceof JDBCQlQueryMetaData)
{
return ((JDBCQlQueryMetaData) o).method.equals(method);
}
return false;
}
public int hashCode()
{
return method.hashCode();
}
public String toString()
{
return "[JDBCQlQueryMetaData : method=" + method + "]";
}
}