Skip to content

Package: PersistenceProvider

PersistenceProvider

Coverage

1: /*
2: * JOPA
3: * Copyright (C) 2024 Czech Technical University in Prague
4: *
5: * This library is free software; you can redistribute it and/or
6: * modify it under the terms of the GNU Lesser General Public
7: * License as published by the Free Software Foundation; either
8: * version 3.0 of the License, or (at your option) any later version.
9: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library.
17: */
18: package cz.cvut.kbss.jopa.model;
19:
20: import java.util.Map;
21:
22: /**
23: * Interface implemented by the persistence provider.
24: * <p>
25: * It is invoked by the Persistence class in Java SE environments to create an EntityManagerFactory and/or to cause
26: * schema generation to occur.
27: */
28: public interface PersistenceProvider {
29:
30: /**
31: * Called by Persistence class when an EntityManagerFactory is to be created.
32: *
33: * @param emName the name of the persistence unit
34: * @param map a Map of properties for use by the persistence provider. These properties specify storage
35: * connection configuration and may also specify additional configuration.
36: * @return EntityManagerFactory for the persistence unit, or null if the provider is not the right provider.
37: */
38: EntityManagerFactory createEntityManagerFactory(String emName, Map<String, String> map);
39:
40: // TODO JPA 2.0
41: // public EntityManagerFactory
42: // createContainerEntityManagerFactory(PersistenceUnitInfo info, Map map);
43:
44: /**
45: * Return the utility interface implemented by the persistence provider.
46: *
47: * @return ProviderUtil interface
48: */
49: ProviderUtil getProviderUtil();
50: }