001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 package org.apache.geronimo.persistence;
019
020 import java.util.Map;
021
022 import javax.persistence.EntityManager;
023 import javax.persistence.EntityManagerFactory;
024 import javax.persistence.EntityTransaction;
025 import javax.persistence.FlushModeType;
026 import javax.persistence.LockModeType;
027 import javax.persistence.Query;
028
029 /**
030 * @version $Rev: 538730 $ $Date: 2007-05-16 17:07:51 -0400 (Wed, 16 May 2007) $
031 */
032 public class CMPEntityManagerExtended implements EntityManager {
033
034 private final ExtendedEntityManagerRegistry entityManagerRegistry;
035 private final EntityManagerFactory entityManagerFactory;
036 private final Map entityManagerProperties;
037
038 public CMPEntityManagerExtended(ExtendedEntityManagerRegistry entityManagerRegistry, EntityManagerFactory entityManagerFactory, Map entityManagerProperties) {
039 this.entityManagerRegistry = entityManagerRegistry;
040 this.entityManagerFactory = entityManagerFactory;
041 this.entityManagerProperties = entityManagerProperties;
042 }
043
044 private EntityManager getEntityManager() {
045 return entityManagerRegistry.getEntityManager(entityManagerFactory, entityManagerProperties);
046 }
047
048 public void persist(Object o) {
049 getEntityManager().persist(o);
050 }
051
052 public <T>T merge(T t) {
053 return getEntityManager().merge(t);
054 }
055
056 public void remove(Object o) {
057 getEntityManager().remove(o);
058 }
059
060 public <T>T find(Class<T> aClass, Object o) {
061 return getEntityManager().find(aClass, o);
062 }
063
064 public <T>T getReference(Class<T> aClass, Object o) {
065 return getEntityManager().getReference(aClass, o);
066 }
067
068 public void flush() {
069 getEntityManager().flush();
070 }
071
072 public void setFlushMode(FlushModeType flushModeType) {
073 getEntityManager().setFlushMode(flushModeType);
074 }
075
076 public FlushModeType getFlushMode() {
077 return getEntityManager().getFlushMode();
078 }
079
080 public void lock(Object o, LockModeType lockModeType) {
081 getEntityManager().lock(o, lockModeType);
082 }
083
084 public void refresh(Object o) {
085 getEntityManager().refresh(o);
086 }
087
088 public void clear() {
089 getEntityManager().clear();
090 }
091
092 public boolean contains(Object o) {
093 return getEntityManager().contains(o);
094 }
095
096 public Query createQuery(String s) {
097 return getEntityManager().createQuery(s);
098 }
099
100 public Query createNamedQuery(String s) {
101 return getEntityManager().createNamedQuery(s);
102 }
103
104 public Query createNativeQuery(String s) {
105 return getEntityManager().createNativeQuery(s);
106 }
107
108 public Query createNativeQuery(String s, Class aClass) {
109 return getEntityManager().createNativeQuery(s, aClass);
110 }
111
112 public Query createNativeQuery(String s, String s1) {
113 return getEntityManager().createNativeQuery(s, s1);
114 }
115
116 public void close() {
117 throw new IllegalStateException("You cannot call close on a Container Managed Entity Manager");
118 }
119
120 public boolean isOpen() {
121 return true;
122 }
123
124 public EntityTransaction getTransaction() {
125 throw new IllegalStateException("You cannot call getTransaction on a container managed EntityManager");
126 }
127
128 public void joinTransaction() {
129 throw new IllegalStateException("You cannot call joinTransaction on a container managed EntityManager");
130 }
131
132 public Object getDelegate() {
133 return getEntityManager().getDelegate();
134 }
135
136 }