/sandbox/simondud/Envers.NET.Spring/Envers.NET.SLN/Envers.NET/Envers/Entities/Mapper/Relation/AbstractDelegateSessionImplementor.cs

https://bitbucket.org/dabide/nhcontrib · C# · 595 lines · 436 code · 118 blank · 41 comment · 0 complexity · 94ae435f397c79754ad3ae1aaf9d1440 MD5 · raw file

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using NHibernate.Engine;
  6. using NHibernate.Collection;
  7. using System.Runtime.Serialization;
  8. using System.Collections;
  9. using NHibernate.Impl;
  10. using NHibernate.Persister.Entity;
  11. using NHibernate.Loader.Custom;
  12. using NHibernate.Engine.Query.Sql;
  13. using NHibernate.Type;
  14. using NHibernate.Event;
  15. using System.Data;
  16. namespace NHibernate.Envers.Entities.Mapper.Relation
  17. {
  18. /**
  19. * @author Catalina Panait, port of Envers omonyme class by Adam Warski (adam at warski dot org)
  20. */
  21. public abstract class AbstractDelegateSessionImplementor : ISessionImplementor {
  22. protected ISessionImplementor delegat;
  23. public AbstractDelegateSessionImplementor(ISessionImplementor delegat) {
  24. this.delegat = delegat;
  25. }
  26. public abstract Object doImmediateLoad(String entityName);
  27. public Object immediateLoad(String entityName, Object id) {
  28. return doImmediateLoad(entityName);
  29. }
  30. // Delegate methods
  31. public IInterceptor getInterceptor() {
  32. return delegat.Interceptor;
  33. }
  34. public void setAutoClear(bool enabled) {
  35. //delegat.setAutoClear(enabled);// not implemented yet
  36. throw new NotImplementedException();
  37. }
  38. public bool isTransactionInProgress() {
  39. return delegat.TransactionInProgress;
  40. }
  41. public void initializeCollection(IPersistentCollection collection, bool writing) {
  42. delegat.InitializeCollection(collection, writing);
  43. }
  44. public Object internalLoad(String entityName, object id, bool eager, bool nullable) {
  45. return delegat.InternalLoad(entityName, id, eager, nullable);
  46. }
  47. public long getTimestamp() {
  48. return delegat.Timestamp;
  49. }
  50. public ISessionFactoryImplementor getFactory() {
  51. return delegat.Factory;
  52. }
  53. public IBatcher getBatcher() {
  54. return delegat.Batcher;
  55. }
  56. public IList list(String query, QueryParameters queryParameters)
  57. {
  58. return delegat.List(query, queryParameters);
  59. }
  60. // TODO in second implementation phase
  61. //public Iterator iterate(String query, QueryParameters queryParameters) {
  62. // return delegat.iterate(query, queryParameters);
  63. //}
  64. // TODO in second implementation phase
  65. //public ScrollableResults scroll(String query, QueryParameters queryParameters) throws HibernateException {
  66. // return delegate.scroll(query, queryParameters);
  67. //}
  68. // TODO in second implementation phase
  69. //public ScrollableResults scroll(CriteriaImpl criteria, ScrollMode scrollMode) {
  70. // return delegate.scroll(criteria, scrollMode);
  71. //}
  72. public IList list(CriteriaImpl criteria) {
  73. return delegat.List(criteria);
  74. }
  75. public IList listFilter(Object collection, String filter, QueryParameters queryParameters) {
  76. return delegat.ListFilter(collection, filter, queryParameters);
  77. }
  78. // TODO in second implementation phase
  79. //public IEnumerator iterateFilter(Object collection, String filter, QueryParameters queryParameters){
  80. // return delegat.iterateFilter(collection, filter, queryParameters);
  81. //}
  82. public IEntityPersister getEntityPersister(String entityName, Object obj) {
  83. return delegat.GetEntityPersister(entityName, obj);
  84. }
  85. public Object getEntityUsingInterceptor(EntityKey key) {
  86. return delegat.GetEntityUsingInterceptor(key);
  87. }
  88. public void afterTransactionCompletion(bool successful, ITransaction tx) {
  89. delegat.AfterTransactionCompletion(successful, tx);
  90. }
  91. public void beforeTransactionCompletion(ITransaction tx) {
  92. delegat.BeforeTransactionCompletion(tx);
  93. }
  94. public object getContextEntityIdentifier(Object obj) {
  95. return delegat.GetContextEntityIdentifier(obj);
  96. }
  97. public String bestGuessEntityName(Object obj) {
  98. return delegat.BestGuessEntityName(obj);
  99. }
  100. public String guessEntityName(Object entity) {
  101. return delegat.GuessEntityName(entity);
  102. }
  103. public Object instantiate(String entityName, object id) {
  104. return delegat.Instantiate(entityName, id);
  105. }
  106. //// TODO in second implementation phase
  107. //public IList listCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters) {
  108. // //IList list;
  109. // //delegat.ListCustomQuery(customQuery, queryParameters, list);
  110. // //return list;
  111. //}
  112. //public ScrollableResults scrollCustomQuery(CustomQuery customQuery, QueryParameters queryParameters) throws HibernateException {
  113. // return delegate.scrollCustomQuery(customQuery, queryParameters);
  114. //}
  115. public IList list(NativeSQLQuerySpecification spec, QueryParameters queryParameters) {
  116. return delegat.List(spec, queryParameters);
  117. }
  118. // TODO in second implementation phase
  119. //public ScrollableResults scroll(NativeSQLQuerySpecification spec, QueryParameters queryParameters) throws HibernateException {
  120. // return delegate.scroll(spec, queryParameters);
  121. //}
  122. public Object getFilterParameterValue(String filterParameterName) {
  123. return delegat.GetFilterParameterValue(filterParameterName);
  124. }
  125. public IType getFilterParameterType(String filterParameterName) {
  126. return delegat.GetFilterParameterType(filterParameterName);
  127. }
  128. public IDictionary<String, IFilter> getEnabledFilters() {
  129. return delegat.EnabledFilters;
  130. }
  131. public int getDontFlushFromFind() {
  132. return delegat.DontFlushFromFind;
  133. }
  134. public EventListeners getListeners() {
  135. return delegat.Listeners;
  136. }
  137. public IPersistenceContext getPersistenceContext() {
  138. return delegat.PersistenceContext;
  139. }
  140. public int executeUpdate(String query, QueryParameters queryParameters){
  141. return delegat.ExecuteUpdate(query, queryParameters);
  142. }
  143. public int executeNativeUpdate(NativeSQLQuerySpecification specification, QueryParameters queryParameters) {
  144. return delegat.ExecuteNativeUpdate(specification, queryParameters);
  145. }
  146. public EntityMode getEntityMode() {
  147. return delegat.EntityMode;
  148. }
  149. public CacheMode getCacheMode() {
  150. return delegat.CacheMode;
  151. }
  152. public void setCacheMode(CacheMode cm) {
  153. delegat.CacheMode = cm;
  154. }
  155. public bool isOpen() {
  156. return delegat.IsOpen;
  157. }
  158. public bool isConnected() {
  159. return delegat.IsConnected;
  160. }
  161. public FlushMode getFlushMode() {
  162. return delegat.FlushMode;
  163. }
  164. public void setFlushMode(FlushMode fm) {
  165. delegat.FlushMode = fm ;
  166. }
  167. public IDbConnection connection() {
  168. return delegat.Connection;
  169. }
  170. public void flush() {
  171. delegat.Flush();
  172. }
  173. public IQuery getNamedQuery(String name) {
  174. return delegat.GetNamedQuery(name);
  175. }
  176. public IQuery getNamedSQLQuery(String name) {
  177. return delegat.GetNamedSQLQuery(name);
  178. }
  179. public bool isEventSource() {
  180. return delegat.IsEventSource;
  181. }
  182. // TODO in second implementation phase
  183. //public void afterScrollOperation() {
  184. // delegate.afterScrollOperation();
  185. //}
  186. public void setFetchProfile(String name) {
  187. delegat.FetchProfile = name;
  188. }
  189. public String getFetchProfile() {
  190. return delegat.FetchProfile;
  191. }
  192. //public JDBCContext getJDBCContext() {
  193. // return delegate.getJDBCContext();
  194. //}
  195. public bool isClosed() {
  196. return delegat.IsClosed;
  197. }
  198. #region ISessionImplementor Members
  199. public void Initialize()
  200. {
  201. delegat.Initialize();
  202. }
  203. public void InitializeCollection(IPersistentCollection collection, bool writing)
  204. {
  205. delegat.InitializeCollection(collection, writing);
  206. }
  207. public object InternalLoad(string entityName, object id, bool eager, bool isNullable)
  208. {
  209. return delegat.InternalLoad(entityName, id, eager, isNullable);
  210. }
  211. public object ImmediateLoad(string entityName, object id)
  212. {
  213. return doImmediateLoad(entityName);
  214. }
  215. public long Timestamp
  216. {
  217. get { return delegat.Timestamp; }
  218. }
  219. public ISessionFactoryImplementor Factory
  220. {
  221. get { return delegat.Factory; }
  222. }
  223. public IBatcher Batcher
  224. {
  225. get { return delegat.Batcher; }
  226. }
  227. public IList List(string query, QueryParameters parameters)
  228. {
  229. return delegat.List(query, parameters);
  230. }
  231. public void List(string query, QueryParameters parameters, IList results)
  232. {
  233. delegat.List(query, parameters, results);
  234. }
  235. public IList<T> List<T>(string query, QueryParameters queryParameters)
  236. {
  237. return delegat.List<T>(query, queryParameters);
  238. }
  239. public IList<T> List<T>(CriteriaImpl criteria)
  240. {
  241. return delegat.List<T>(criteria);
  242. }
  243. public void List(CriteriaImpl criteria, IList results)
  244. {
  245. delegat.List(criteria, results);
  246. }
  247. public IList List(CriteriaImpl criteria)
  248. {
  249. return delegat.List(criteria);
  250. }
  251. public IEnumerable Enumerable(string query, QueryParameters parameters)
  252. {
  253. return delegat.Enumerable(query, parameters);
  254. }
  255. public IEnumerable<T> Enumerable<T>(string query, QueryParameters queryParameters)
  256. {
  257. return delegat.Enumerable<T>(query, queryParameters);
  258. }
  259. public IList ListFilter(object collection, string filter, QueryParameters parameters)
  260. {
  261. return delegat.ListFilter(collection, filter, parameters);
  262. }
  263. public IList<T> ListFilter<T>(object collection, string filter, QueryParameters parameters)
  264. {
  265. return delegat.ListFilter<T>(collection, filter, parameters);
  266. }
  267. public IEnumerable EnumerableFilter(object collection, string filter, QueryParameters parameters)
  268. {
  269. return delegat.EnumerableFilter(collection, filter, parameters);
  270. }
  271. public IEnumerable<T> EnumerableFilter<T>(object collection, string filter, QueryParameters parameters)
  272. {
  273. return delegat.EnumerableFilter<T>(collection, filter, parameters);
  274. }
  275. public IEntityPersister GetEntityPersister(string entityName, object obj)
  276. {
  277. return delegat.GetEntityPersister(entityName, obj);
  278. }
  279. public void AfterTransactionBegin(ITransaction tx)
  280. {
  281. delegat.AfterTransactionBegin(tx);
  282. }
  283. public void BeforeTransactionCompletion(ITransaction tx)
  284. {
  285. delegat.BeforeTransactionCompletion(tx);
  286. }
  287. public void AfterTransactionCompletion(bool successful, ITransaction tx)
  288. {
  289. delegat.AfterTransactionCompletion(successful, tx);
  290. }
  291. public object GetContextEntityIdentifier(object obj)
  292. {
  293. return delegat.GetContextEntityIdentifier(obj);
  294. }
  295. public object Instantiate(string entityName, object id)
  296. {
  297. return delegat.Instantiate(entityName, id);
  298. }
  299. public IList List(NativeSQLQuerySpecification spec, QueryParameters queryParameters)
  300. {
  301. return delegat.List(spec, queryParameters);
  302. }
  303. public void List(NativeSQLQuerySpecification spec, QueryParameters queryParameters, IList results)
  304. {
  305. delegat.List(spec, queryParameters, results);
  306. }
  307. public IList<T> List<T>(NativeSQLQuerySpecification spec, QueryParameters queryParameters)
  308. {
  309. return delegat.List<T>(spec, queryParameters);
  310. }
  311. public void ListCustomQuery(ICustomQuery customQuery, QueryParameters queryParameters, IList results)
  312. {
  313. delegat.ListCustomQuery(customQuery,queryParameters, results);
  314. }
  315. public IList<T> ListCustomQuery<T>(ICustomQuery customQuery, QueryParameters queryParameters)
  316. {
  317. return delegat.ListCustomQuery<T>(customQuery, queryParameters);
  318. }
  319. public object GetFilterParameterValue(string filterParameterName)
  320. {
  321. return delegat.GetFilterParameterValue(filterParameterName);
  322. }
  323. public IType GetFilterParameterType(string filterParameterName)
  324. {
  325. return delegat.GetFilterParameterType(filterParameterName);
  326. }
  327. public IDictionary<string, IFilter> EnabledFilters
  328. {
  329. get { return delegat.EnabledFilters; }
  330. }
  331. public IQuery GetNamedSQLQuery(string name)
  332. {
  333. return delegat.GetNamedSQLQuery(name);
  334. }
  335. public NHibernate.Hql.IQueryTranslator[] GetQueries(string query, bool scalar)
  336. {
  337. return delegat.GetQueries(query, scalar);
  338. }
  339. public IInterceptor Interceptor
  340. {
  341. get { return delegat.Interceptor; }
  342. }
  343. public EventListeners Listeners
  344. {
  345. get { return delegat.Listeners; }
  346. }
  347. public int DontFlushFromFind
  348. {
  349. get { return delegat.DontFlushFromFind; }
  350. }
  351. public NHibernate.AdoNet.ConnectionManager ConnectionManager
  352. {
  353. get { return delegat.ConnectionManager; }
  354. }
  355. public bool IsEventSource
  356. {
  357. get { return delegat.IsEventSource; }
  358. }
  359. public object GetEntityUsingInterceptor(EntityKey key)
  360. {
  361. return delegat.GetEntityUsingInterceptor(key);
  362. }
  363. public IPersistenceContext PersistenceContext
  364. {
  365. get { return delegat.PersistenceContext; }
  366. }
  367. public CacheMode CacheMode
  368. {
  369. get
  370. {
  371. return delegat.CacheMode;
  372. }
  373. set
  374. {
  375. delegat.CacheMode = value;
  376. }
  377. }
  378. public bool IsOpen
  379. {
  380. get { return delegat.IsOpen; }
  381. }
  382. public bool IsConnected
  383. {
  384. get { return delegat.IsConnected; }
  385. }
  386. public FlushMode FlushMode
  387. {
  388. get
  389. {
  390. return delegat.FlushMode;
  391. }
  392. set
  393. {
  394. delegat.FlushMode = value;
  395. }
  396. }
  397. public string FetchProfile
  398. {
  399. get
  400. {
  401. return delegat.FetchProfile;
  402. }
  403. set
  404. {
  405. delegat.FetchProfile = value;
  406. }
  407. }
  408. public string BestGuessEntityName(object entity)
  409. {
  410. return delegat.BestGuessEntityName(entity);
  411. }
  412. public string GuessEntityName(object entity)
  413. {
  414. return delegat.GuessEntityName(entity);
  415. }
  416. public IDbConnection Connection
  417. {
  418. get { return delegat.Connection; }
  419. }
  420. public IQuery GetNamedQuery(string queryName)
  421. {
  422. return delegat.GetNamedQuery(queryName);
  423. }
  424. public bool IsClosed
  425. {
  426. get { return delegat.IsClosed; }
  427. }
  428. public void Flush()
  429. {
  430. delegat.Flush();
  431. }
  432. public bool TransactionInProgress
  433. {
  434. get { return delegat.TransactionInProgress; }
  435. }
  436. public EntityMode EntityMode
  437. {
  438. get { return delegat.EntityMode; }
  439. }
  440. public int ExecuteNativeUpdate(NativeSQLQuerySpecification specification, QueryParameters queryParameters)
  441. {
  442. return delegat.ExecuteNativeUpdate(specification, queryParameters);
  443. }
  444. public int ExecuteUpdate(string query, QueryParameters queryParameters)
  445. {
  446. return delegat.ExecuteUpdate(query, queryParameters);
  447. }
  448. public FutureCriteriaBatch FutureCriteriaBatch
  449. {
  450. get { return delegat.FutureCriteriaBatch; }
  451. }
  452. public FutureQueryBatch FutureQueryBatch
  453. {
  454. get { return delegat.FutureQueryBatch; }
  455. }
  456. public Guid SessionId
  457. {
  458. get { return delegat.SessionId; }
  459. }
  460. public NHibernate.Transaction.ITransactionContext TransactionContext
  461. {
  462. get
  463. {
  464. return delegat.TransactionContext;
  465. }
  466. set
  467. {
  468. delegat.TransactionContext = value;
  469. }
  470. }
  471. public void CloseSessionFromDistributedTransaction()
  472. {
  473. delegat.CloseSessionFromDistributedTransaction();
  474. }
  475. #endregion
  476. }
  477. }