/*
* JBoss, Home of Professional Open Source
* Copyright 2005, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.hibernate.jmx;

/**
 * MBean interface.
 * @xdoclet-generated at November 15 2005
 * @copyright The XDoclet Team
 * @author XDoclet
 * @version ${version}
 */
public interface HibernateMBean extends org.jboss.system.ServiceMBean {

   //default object name
   public static final javax.management.ObjectName OBJECT_NAME = org.jboss.mx.util.ObjectNameFactory.create("jboss.har:service=Hibernate");

   /**
    * Get the <tt>SessionFactory</tt> JNDI name.
    */
  java.lang.String getSessionFactoryName() ;

   /**
    * Set the <tt>SessionFactory</tt> JNDI name.
    */
  void setSessionFactoryName(java.lang.String sessionFactoryName) ;

  java.net.URL getHarUrl() ;

  void setHarUrl(java.net.URL harUrl) ;

   /**
    * Get the JNDI datasource name.
    */
  java.lang.String getDatasourceName() ;

   /**
    * Set the JNDI datasource name.
    */
  void setDatasourceName(java.lang.String datasourceName) ;

   /**
    * Get the default database schema.
    */
  java.lang.String getDefaultSchema() ;

   /**
    * Set the default database schema.
    */
  void setDefaultSchema(java.lang.String defaultSchema) ;

  java.lang.String getHbm2ddlAuto() ;

  void setHbm2ddlAuto(java.lang.String hbm2ddlAuto) ;

   /**
    * Get the Hibernate SQL dialect.
    */
  java.lang.String getDialect() ;

   /**
    * Set the Hibernate SQL dialect.
    */
  void setDialect(java.lang.String dialect) ;

   /**
    * Get the maximum outer join fetch depth.
    */
  java.lang.String getMaxFetchDepth() ;

   /**
    * Set the maximum outer join fetch depth.
    */
  void setMaxFetchDepth(java.lang.String maxFetchDepth) ;

   /**
    * Get the JDBC batch update batch size.
    */
  java.lang.String getJdbcBatchSize() ;

   /**
    * Set the JDBC batch update batch size.
    */
  void setJdbcBatchSize(java.lang.String jdbcBatchSize) ;

   /**
    * Get the JDBC fetch size.
    */
  java.lang.String getJdbcFetchSize() ;

   /**
    * Set the JDBC fetch size.
    */
  void setJdbcFetchSize(java.lang.String jdbcFetchSize) ;

   /**
    * Are scrollable result sets enabled?
    */
  java.lang.String getJdbcScrollableResultSetEnabled() ;

  void setJdbcScrollableResultSetEnabled(java.lang.String jdbcScrollableResultSetEnabled) ;

   /**
    * Is the use of JDBC3 <tt>getGeneratedKeys()</tt> enabled?
    */
  java.lang.String getGetGeneratedKeysEnabled() ;

  void setGetGeneratedKeysEnabled(java.lang.String getGeneratedKeysEnabled) ;

   /**
    * Get the query substitutions.
    */
  java.lang.String getQuerySubstitutions() ;

   /**
    * Set the query substitutions.
    */
  void setQuerySubstitutions(java.lang.String querySubstitutions) ;

   /**
    * Is the query cache enabled?
    */
  java.lang.String getQueryCacheEnabled() ;

  void setQueryCacheEnabled(java.lang.String queryCacheEnabled) ;

   /**
    * Get the cache provider class.
    */
  java.lang.String getCacheProviderClass() ;

   /**
    * Set the cache provider class.
    */
  void setCacheProviderClass(java.lang.String cacheProviderClass) ;

  java.lang.String getCacheRegionPrefix() ;

  void setCacheRegionPrefix(java.lang.String cacheRegionPrefix) ;

  java.lang.String getMinimalPutsEnabled() ;

  void setMinimalPutsEnabled(java.lang.String minimalPutsEnabled) ;

   /**
    * Is SQL being logged to the console?
    */
  java.lang.String getShowSqlEnabled() ;

  void setShowSqlEnabled(java.lang.String showSqlEnabled) ;

   /**
    * Get the database username.
    */
  java.lang.String getUsername() ;

   /**
    * Set the database username.
    */
  void setUsername(java.lang.String username) ;

   /**
    * Get the database password.
    */
  java.lang.String getPassword() ;

   /**
    * Set the database password.
    */
  void setPassword(java.lang.String password) ;

  java.lang.String getSessionFactoryInterceptor() ;

  void setSessionFactoryInterceptor(java.lang.String sessionFactoryInterceptor) ;

  boolean isDirty() ;

  boolean isSessionFactoryRunning() ;

  java.lang.String getDeployedTreeCacheJndiName() ;

  void setDeployedTreeCacheJndiName(java.lang.String deployedTreeCacheJndiName) ;

  java.lang.String getBatchVersionedDataEnabled() ;

  void setBatchVersionedDataEnabled(java.lang.String batchVersionedDataEnabled) ;

  java.lang.String getStreamsForBinaryEnabled() ;

  void setStreamsForBinaryEnabled(java.lang.String streamsForBinaryEnabled) ;

  java.lang.String getReflectionOptimizationEnabled() ;

  void setReflectionOptimizationEnabled(java.lang.String reflectionOptimizationEnabled) ;

  void rebuildSessionFactory() throws java.lang.Exception;

}
