public ComponentPropertyMapper(PropertyData propertyData, String componentClassName) {
            this.propertyData = propertyData;
            this._delegate = new MultiPropertyMapper();
		    this.componentClassName = componentClassName;
        }
        //@SuppressWarnings({"unchecked"})
        private Triple<XmlElement, IExtendedPropertyMapper, String> GenerateMappingData(
                PersistentClass pc, EntityXmlMappingData xmlMappingData, AuditTableData auditTableData,
                IdMappingData idMapper)
        {
            bool hasDiscriminator = pc.Discriminator != null;

            XmlElement class_mapping = MetadataTools.CreateEntity(xmlMappingData.MainXmlMapping, auditTableData,
                    hasDiscriminator ? pc.DiscriminatorValue : null);
            IExtendedPropertyMapper propertyMapper = new MultiPropertyMapper();

            // Checking if there is a discriminator column
            if (hasDiscriminator)
            {
                XmlElement discriminator_element = class_mapping.OwnerDocument.CreateElement("discriminator");
                class_mapping.AppendChild(discriminator_element);
                MetadataTools.AddColumns(discriminator_element, (IEnumerator<ISelectable>)pc.Discriminator.ColumnIterator.GetEnumerator());
                discriminator_element.SetAttribute("type", pc.Discriminator.Type.Name);
            }

            InheritanceType.Type parentInheritance = InheritanceType.GetForParent(pc);
            switch (parentInheritance)
            {
                case InheritanceType.Type.NONE:
                    break;

                case InheritanceType.Type.SINGLE:
                    AddSingleInheritancePersisterHack(class_mapping);
                    break;

                case InheritanceType.Type.JOINED:
                    AddJoinedInheritancePersisterHack(class_mapping);
                    break;

                case InheritanceType.Type.TABLE_PER_CLASS:
                    AddTablePerClassInheritancePersisterHack(class_mapping);
                    break;
            }

            // Adding the id mapping
            XmlNode xmlMp = class_mapping.OwnerDocument.ImportNode(idMapper.XmlMapping,true);
            class_mapping.AppendChild(xmlMp);

            // Adding the "revision type" property
            AddRevisionType(class_mapping);

            return Triple<XmlElement, IExtendedPropertyMapper, string>.Make<XmlElement, IExtendedPropertyMapper, string>(class_mapping, propertyMapper, null);
        }
Example #3
0
 public ComponentPropertyMapper(PropertyData propertyData, String componentClassName)
 {
     this.propertyData       = propertyData;
     this._delegate          = new MultiPropertyMapper();
     this.componentClassName = componentClassName;
 }
Example #4
0
 public ComponentPropertyMapper(PropertyData propertyData, string componentClassName)
 {
     _propertyData       = propertyData;
     _delegate           = new MultiPropertyMapper();
     _componentClassName = componentClassName;
 }
        private Triple<XmlElement, IExtendedPropertyMapper, string> GenerateMappingData(
				PersistentClass pc, EntityXmlMappingData xmlMappingData, AuditTableData auditTableData,
				IdMappingData idMapper)
        {
            var hasDiscriminator = pc.Discriminator != null;

            var classMapping = MetadataTools.CreateEntity(xmlMappingData.MainXmlMapping, auditTableData,
                    hasDiscriminator ? pc.DiscriminatorValue : null);
            var propertyMapper = new MultiPropertyMapper();

            // Adding the id mapping
            var xmlMp = classMapping.OwnerDocument.ImportNode(idMapper.XmlMapping, true);
            classMapping.AppendChild(xmlMp);

            // Checking if there is a discriminator column
            if (hasDiscriminator)
            {
                var discriminatorElement = classMapping.OwnerDocument.CreateElement("discriminator");
                classMapping.AppendChild(discriminatorElement);
                // Database column or SQL formula allowed to distinguish entity types
                MetadataTools.AddColumnsOrFormulas(discriminatorElement, pc.Discriminator.ColumnIterator);
                discriminatorElement.SetAttribute("type", pc.Discriminator.Type.Name);
            }

            // Adding the "revision type" property
            AddRevisionType(classMapping);

            return new Triple<XmlElement, IExtendedPropertyMapper, string>(classMapping, propertyMapper, null);
        }
 public DynamicComponentPropertyMapper(PropertyData propertyData)
 {
     _propertyData = propertyData;
     _delegate = new MultiPropertyMapper();
 }
 public DynamicComponentPropertyMapper(PropertyData propertyData)
 {
     _propertyData = propertyData;
     _delegate     = new MultiPropertyMapper();
 }