PageRenderTime 52ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/sandbox/simondud/Envers.NET.Spring/Envers.NET.SLN/Envers.NET/Envers/Entities/Mapper/Id/AbstractCompositeIdMapper.cs

https://bitbucket.org/dabide/nhcontrib
C# | 61 lines | 47 code | 9 blank | 5 comment | 0 complexity | 566d146cd48bbc8cddb2f74a5769eb85 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.Envers.Entities.Mapper;
  6. using NHibernate.Mapping;
  7. using NHibernate.Envers.Configuration.Metadata.Reader;
  8. using NHibernate.Envers.Entities;
  9. using NHibernate.Envers.Configuration.Metadata;
  10. using NHibernate.Envers.Tools.Graph;
  11. using NHibernate.Properties;
  12. using NHibernate.Envers.Tools;
  13. using NHibernate.Envers.Entities.Mapper.Id;
  14. using System.Threading;
  15. using System.Reflection;
  16. using NHibernate.Envers.Exceptions;
  17. using NHibernate.Util;
  18. namespace NHibernate.Envers.Entities.Mapper.Id
  19. {
  20. /**
  21. * @author Catalina Panait, port of Envers omonyme class by Adam Warski (adam at warski dot org)
  22. */
  23. public abstract class AbstractCompositeIdMapper : AbstractIdMapper , ISimpleIdMapperBuilder
  24. {
  25. protected IDictionary<PropertyData, SingleIdMapper> ids;
  26. protected System.Type compositeIdClass;
  27. protected AbstractCompositeIdMapper(System.Type compositeIdClass)
  28. {
  29. //Simon 27/06/2010 - era LinkedHashMap
  30. ids = new Dictionary<PropertyData, SingleIdMapper>();
  31. this.compositeIdClass = compositeIdClass;
  32. }
  33. public void Add(PropertyData propertyData)
  34. {
  35. ids.Add(propertyData, new SingleIdMapper(propertyData));
  36. }
  37. public override Object MapToIdFromMap(IDictionary<String, Object> data) //(Map data)
  38. {//<String, Object> sau <PropertyData, SingleIdMapper>
  39. Object ret;
  40. try {
  41. ret = Activator.CreateInstance(compositeIdClass);
  42. //ret = Thread.currentThread().getContextClassLoader().loadClass(compositeIdClass).newInstance();
  43. } catch (Exception e) {
  44. throw new AuditException(e);
  45. }
  46. foreach (SingleIdMapper mapper in ids.Values) {
  47. mapper.MapToEntityFromMap(ret, data);
  48. }
  49. return ret;
  50. }
  51. }
  52. }