PageRenderTime 44ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

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

https://bitbucket.org/dabide/nhcontrib
C# | 103 lines | 43 code | 20 blank | 40 comment | 0 complexity | 208c3f9ea025f296e7de944a8a3e361c MD5 | raw file
Possible License(s): BSD-3-Clause, MPL-2.0-no-copyleft-exception, CC-BY-SA-3.0, GPL-2.0, Apache-2.0, LGPL-3.0, LGPL-2.1
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using NHibernate.Properties;
  6. using NHibernate.Engine;
  7. using NHibernate.Envers.Configuration;
  8. using NHibernate.Envers.Reader;
  9. using NHibernate.Collection;
  10. using System.Runtime.Serialization;
  11. namespace NHibernate.Envers.Entities.Mapper.Relation
  12. {
  13. /**
  14. * @author Catalina Panait, port of Envers omonyme class by Adam Warski (adam at warski dot org)
  15. */
  16. public class OneToOneNotOwningMapper : IPropertyMapper {
  17. private String owningReferencePropertyName;
  18. private String owningEntityName;
  19. private PropertyData propertyData;
  20. public OneToOneNotOwningMapper(String owningReferencePropertyName, String owningEntityName,
  21. PropertyData propertyData) {
  22. this.owningReferencePropertyName = owningReferencePropertyName;
  23. this.owningEntityName = owningEntityName;
  24. this.propertyData = propertyData;
  25. }
  26. public bool MapToMapFromEntity(ISessionImplementor session, IDictionary<String, Object> data, Object newObj, Object oldObj) {
  27. return false;
  28. }
  29. public void MapToEntityFromMap(AuditConfiguration verCfg, Object obj, IDictionary<String, Object> data, Object primaryKey, IAuditReaderImplementor versionsReader, long revision)
  30. {
  31. //TODO in implementing second phase/////////////
  32. throw new NotImplementedException("Not Implemented!");
  33. //if (obj == null) {
  34. // return;
  35. //}Not implememented
  36. //System.Type entityClass = ReflectionTools.loadClass(owningEntityName);
  37. //Object value;
  38. //try {
  39. // value = versionsReader.CreateQuery().ForEntitiesAtRevision(entityClass, revision)
  40. // //.Add( (AuditEntity.relatedId(owningReferencePropertyName).eq(primaryKey)).GetSingleResult();
  41. //} catch (NoResultException e) {
  42. // value = null;
  43. //} catch (NonUniqueResultException e) {
  44. // throw new AuditException("Many versions results for one-to-one relationship: (" + owningEntityName +
  45. // ", " + owningReferencePropertyName + ")");
  46. //}
  47. //ISetter setter = ReflectionTools.getSetter(obj.getClass(), propertyData);
  48. //Catalina: la portare se foloseste PropertyInfo. Exemple in MultiPropertyMapper si SinglePropertyMapper
  49. //setter.set(obj, value, null);
  50. }
  51. public IList<PersistentCollectionChangeData> MapCollectionChanges(String referencingPropertyName,
  52. IPersistentCollection newColl,
  53. object oldColl,
  54. object id)
  55. {
  56. return null;
  57. }
  58. #region IPropertyMapper Members
  59. public void MapToEntityFromMap(NHibernate.Envers.Configuration.AuditConfiguration verCfg, object obj, IDictionary<object, object> data, object primaryKey, NHibernate.Envers.Reader.IAuditReaderImplementor versionsReader, long revision)
  60. {
  61. // //TODO in implementing second phase/////////////
  62. //if (obj == null) {
  63. // return;
  64. // }
  65. ////System.Type entityClass = ReflectionTools.loadClass(owningEntityName);
  66. // System.Runtime.Remoting.ObjectHandle hdl = Activator.CreateInstance(owningEntityName);
  67. // System.Type entityClass = hdl.GetType();
  68. // Object value;
  69. // try {
  70. // value = versionsReader.CreateQuery().ForEntitiesAtRevision(entityClass, revision)
  71. // .Add(AuditEntity.relatedId(owningReferencePropertyName).eq(primaryKey)).GetSingleResult();
  72. // } catch (NoResultException e) {
  73. // value = null;
  74. // } catch (NonUniqueResultException e) {
  75. // throw new AuditException("Many versions results for one-to-one relationship: (" + owningEntityName +
  76. // ", " + owningReferencePropertyName + ")");
  77. // }
  78. // Setter setter = ReflectionTools.getSetter(obj.getClass(), propertyData);
  79. // setter.set(obj, value, null);
  80. }
  81. #endregion
  82. }
  83. }