KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > orm > jpa > JpaVendorAdapter


1 /*
2  * Copyright 2002-2006 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.orm.jpa;
18
19 import java.util.Map JavaDoc;
20
21 import javax.persistence.EntityManager;
22 import javax.persistence.EntityManagerFactory;
23 import javax.persistence.spi.PersistenceProvider;
24
25 /**
26  * SPI interface that allows to plug in vendor-specific behavior
27  * into Spring's EntityManagerFactory creators. Serves as single
28  * configuration point for all vendor-specific properties.
29  *
30  * @author Juergen Hoeller
31  * @author Rod Johnson
32  * @since 2.0
33  * @see AbstractEntityManagerFactoryBean#setJpaVendorAdapter
34  */

35 public interface JpaVendorAdapter {
36
37     /**
38      * Return the vendor-specific persistence provider.
39      */

40     PersistenceProvider getPersistenceProvider();
41
42     /**
43      * Return a Map of vendor-specific JPA properties,
44      * typically based on settings in this JpaVendorAdapter instance.
45      * <p>Note that there might be further JPA properties defined on
46      * the EntityManagerFactory bean, which might potentially override
47      * individual JPA property values specified here.
48      * @return a Map of JPA properties, as as accepted by the standard
49      * JPA bootstrap facilities, or <code>null</code> or an empty Map
50      * if there are no such properties to expose
51      * @see javax.persistence.Persistence#createEntityManagerFactory(String, java.util.Map)
52      * @see javax.persistence.spi.PersistenceProvider#createContainerEntityManagerFactory(javax.persistence.spi.PersistenceUnitInfo, java.util.Map)
53      */

54     Map JavaDoc getJpaPropertyMap();
55
56     /**
57      * Return the vendor-specific EntityManager interface that this
58      * provider's EntityManagers will implement.
59      * <p>If the provider does not offer any EntityManager extensions,
60      * the adapter should simply return the standard
61      * {@link javax.persistence.EntityManager} class here.
62      */

63     Class JavaDoc<? extends EntityManager> getEntityManagerInterface();
64
65     /**
66      * Return the vendor-specific JpaDialect implementation for this
67      * provider, or <code>null</code> if there is none.
68      */

69     JpaDialect getJpaDialect();
70
71     /**
72      * Optional callback for post-processing the native EntityManagerFactory
73      * before active use.
74      * <p>This can be used for triggering vendor-specific initialization processes.
75      * While this is not expected to be used for most providers, it is included
76      * here as a general extension hook.
77      */

78     void postProcessEntityManagerFactory(EntityManagerFactory emf);
79
80 }
81
Popular Tags