/*
 * 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.cfg;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.SessionEventListener;
import org.hibernate.engine.internal.StatisticalLoggingSessionEventListener;

Author:Steve Ebersole
/** * @author Steve Ebersole */
public class BaselineSessionEventsListenerBuilder { private boolean logSessionMetrics; private Class<? extends SessionEventListener> autoListener; public BaselineSessionEventsListenerBuilder( boolean logSessionMetrics, Class<? extends SessionEventListener> autoListener) { this.logSessionMetrics = logSessionMetrics; this.autoListener = autoListener; } @SuppressWarnings("UnusedDeclaration") public boolean isLogSessionMetrics() { return logSessionMetrics; } @SuppressWarnings("UnusedDeclaration") public void setLogSessionMetrics(boolean logSessionMetrics) { this.logSessionMetrics = logSessionMetrics; } @SuppressWarnings("UnusedDeclaration") public Class<? extends SessionEventListener> getAutoListener() { return autoListener; } @SuppressWarnings("UnusedDeclaration") public void setAutoListener(Class<? extends SessionEventListener> autoListener) { this.autoListener = autoListener; } public List<SessionEventListener> buildBaselineList() { List<SessionEventListener> list = new ArrayList<SessionEventListener>(); if ( logSessionMetrics && StatisticalLoggingSessionEventListener.isLoggingEnabled() ) { list.add( new StatisticalLoggingSessionEventListener() ); } if ( autoListener != null ) { try { list.add( autoListener.newInstance() ); } catch (Exception e) { throw new HibernateException( "Unable to instantiate specified auto SessionEventListener : " + autoListener.getName(), e ); } } return list; } }