private Triple<XmlElement, IExtendedPropertyMapper, String> GenerateInheritanceMappingData(
                PersistentClass pc, EntityXmlMappingData xmlMappingData, AuditTableData auditTableData,
                String inheritanceMappingType)
        {
            String extendsEntityName = VerEntCfg.GetAuditEntityName(pc.Superclass.EntityName);
            XmlElement class_mapping = MetadataTools.CreateSubclassEntity(xmlMappingData.MainXmlMapping,
                    inheritanceMappingType, auditTableData, extendsEntityName, pc.DiscriminatorValue);

            // The id and revision type is already mapped in the parent

            // Getting the property mapper of the parent - when mapping properties, they need to be included
            String parentEntityName = pc.Superclass.EntityName;

            EntityConfiguration parentConfiguration = EntitiesConfigurations[parentEntityName];
            if (parentConfiguration == null)
            {
                throw new MappingException("Entity '" + pc.EntityName + "' is audited, but its superclass: '" +
                        parentEntityName + "' is not.");
            }

            IExtendedPropertyMapper parentPropertyMapper = parentConfiguration.PropertyMapper;
            IExtendedPropertyMapper propertyMapper = new SubclassPropertyMapper(new MultiPropertyMapper(), parentPropertyMapper);

            return Triple<XmlElement, IExtendedPropertyMapper, String>.Make<XmlElement, IExtendedPropertyMapper, String>(class_mapping, propertyMapper, parentEntityName);
        }
        public EntityConfiguration(String versionsEntityName, IdMappingData idMappingData,
            IExtendedPropertyMapper propertyMapper, String parentEntityName)
        {
            this.VersionsEntityName = versionsEntityName;
            this.IdMappingData = idMappingData;
            this.PropertyMapper = propertyMapper;
            this.ParentEntityName = parentEntityName;

            this.relations = new Dictionary<String, RelationDescription>();
        }
Example #3
0
        public EntityConfiguration(String versionsEntityName, IdMappingData idMappingData,
                                   IExtendedPropertyMapper propertyMapper, String parentEntityName)
        {
            this.VersionsEntityName = versionsEntityName;
            this.IdMappingData      = idMappingData;
            this.PropertyMapper     = propertyMapper;
            this.ParentEntityName   = parentEntityName;

            this.relations = new Dictionary <String, RelationDescription>();
        }
Example #4
0
        public EntityConfiguration(string versionsEntityName, string entityClassName, IdMappingData idMappingData,
							IExtendedPropertyMapper propertyMapper, string parentEntityName)
        {
            VersionsEntityName = versionsEntityName;
            EntityClassName = entityClassName;
            IdMappingData = idMappingData;
            PropertyMapper = propertyMapper;
            ParentEntityName = parentEntityName;

            relations = new Dictionary<string, RelationDescription>();
        }
        public EntityConfiguration(string versionsEntityName, string entityClassName, IdMappingData idMappingData,
                                   IExtendedPropertyMapper propertyMapper, string parentEntityName, Func <System.Type, object> factory)
        {
            VersionsEntityName = versionsEntityName;
            EntityClassName    = entityClassName;
            IdMappingData      = idMappingData;
            PropertyMapper     = propertyMapper;
            ParentEntityName   = parentEntityName;

            Factory   = factory;
            relations = new Dictionary <string, RelationDescription>();
        }
Example #6
0
 public SubclassPropertyMapper(IExtendedPropertyMapper main, IExtendedPropertyMapper parentMapper)
 {
     this.main         = main;
     this.parentMapper = parentMapper;
 }
 public SubclassPropertyMapper(IExtendedPropertyMapper main, IExtendedPropertyMapper parentMapper)
 {
     this.main = main;
     this.parentMapper = parentMapper;
 }