/**
* MailArchiver is an application that provides services for storing and managing e-mail messages through a Web Services SOAP interface.
* Copyright (C) 2012 Marcio Andre Scholl Levien and Fernando Alberto Reuter Wendt and Jose Ronaldo Nogueira Fonseca Junior
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
/******************************************************************************\
*
* This product was developed by
*
* SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO),
*
* a government company established under Brazilian law (5.615/70),
* at Department of Development of Porto Alegre.
*
\******************************************************************************/
package serpro.mailarchiver.util.jdo;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import javax.jdo.datastore.Sequence;
import javax.naming.Reference;
import org.datanucleus.api.jdo.JDOPersistenceManager;
import org.datanucleus.api.jdo.JDOQueryCache;
import org.datanucleus.api.jdo.LifecycleListenerForClass;
import org.datanucleus.query.cache.QueryCompilationCache;
import org.datanucleus.store.query.cache.QueryDatastoreCompilationCache;
public interface PersistenceManagerFactory
extends javax.jdo.PersistenceManagerFactory
{
@Override
public PersistenceManager getPersistenceManager();
@Override
public PersistenceManager getPersistenceManager(String userName, String password);
// public boolean equals(Object obj);
// public Object getObjectInstance(Object obj, Name name, Context ctx, Hashtable env) throws Exception;
public Reference getReference();
@Override
public PersistenceManager getPersistenceManagerProxy();
// public Properties getProperties();
// public Collection supportedOptions();
public void releasePersistenceManager(JDOPersistenceManager pm);
// public boolean isClosed();
// public void close();
// public DataStoreCache getDataStoreCache();
public JDOQueryCache getQueryCache();
public QueryCompilationCache getQueryGenericCompilationCache();
public QueryDatastoreCompilationCache getQueryDatastoreCompilationCache();
// public void setConnectionUserName(String userName);
// public void setConnectionPassword(String password);
// public void setConnectionURL(String url);
// public void setConnectionDriverName(String driverName);
// public void setConnectionFactoryName(String connectionFactoryName);
// public void setConnectionFactory(Object connectionFactory);
// public void setConnectionFactory2Name(String connectionFactoryName);
// public void setConnectionFactory2(Object connectionFactory);
// public void setMultithreaded(boolean flag);
// public void setOptimistic(boolean flag);
// public void setRetainValues(boolean flag);
// public void setRestoreValues(boolean flag);
// public void setNontransactionalRead(boolean flag);
// public void setNontransactionalWrite(boolean flag);
// public void setIgnoreCache(boolean flag);
// public void setDetachAllOnCommit(boolean flag);
// public void setCopyOnAttach(boolean flag);
// public void setMapping(String mapping);
public void setCatalog(String catalog);
public void setSchema(String schema);
// public void setDatastoreReadTimeoutMillis(Integer timeout);
// public void setDatastoreWriteTimeoutMillis(Integer timeout);
// public void setTransactionType(String type);
// public void setPersistenceUnitName(String name);
public void setPersistenceXmlFilename(String name);
// public void setName(String name);
// public void setServerTimeZoneID(String id);
// public void setReadOnly(boolean flag);
// public void setTransactionIsolationLevel(String level);
// public String getConnectionUserName();
public String getConnectionPassword();
// public String getConnectionURL();
// public String getConnectionDriverName();
// public String getConnectionFactoryName();
// public String getConnectionFactory2Name();
// public Object getConnectionFactory();
// public Object getConnectionFactory2();
// public boolean getMultithreaded();
// public boolean getOptimistic();
// public boolean getRetainValues();
// public boolean getRestoreValues();
// public boolean getNontransactionalRead();
// public boolean getNontransactionalWrite();
// public boolean getIgnoreCache();
// public boolean getDetachAllOnCommit();
// public boolean getCopyOnAttach();
// public String getMapping();
public String getCatalog();
public String getSchema();
// public String getName();
// public String getPersistenceUnitName();
public String getPersistenceXmlFilename();
// public Integer getDatastoreReadTimeoutMillis();
// public Integer getDatastoreWriteTimeoutMillis();
// public String getServerTimeZoneID();
// public boolean getReadOnly();
// public String getTransactionType();
// public String getTransactionIsolationLevel();
public void setPrimaryClassLoader(ClassLoader loader);
public ClassLoader getPrimaryClassLoader();
public void setPersistenceProperties(Map props);
public Map getPersistenceProperties();
public List getLifecycleListenerSpecifications();
// public void addInstanceLifecycleListener(InstanceLifecycleListener listener, Class[] classes);
// public void removeInstanceLifecycleListener(InstanceLifecycleListener listener);
public void addSequenceForFactoryClass(String factoryClassName, Sequence sequence);
public Sequence getSequenceForFactoryClass(String factoryClassName);
// public Set getFetchGroups();
// public FetchGroup getFetchGroup(Class cls, String name);
// public void addFetchGroups(FetchGroup[] groups);
// public void removeFetchGroups(FetchGroup[] groups);
// public void removeAllFetchGroups();
// public JDOMetadata newMetadata();
// public void registerMetadata(JDOMetadata metadata);
// public TypeMetadata getMetadata(String className);
public Collection getManagedClasses();
}