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 #2
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 #3
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>();
        }
        //@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);
        }
 private MiddleIdData CreateMiddleIdData(IdMappingData idMappingData, String prefix, String entityName)
 {
     return new MiddleIdData(mainGenerator.VerEntCfg, idMappingData, prefix, entityName,
             mainGenerator.EntitiesConfigurations.ContainsKey(entityName));
 }
 /**
  * Adds mapping of the id of a related entity to the given xml mapping, prefixing the id with the given prefix.
  * @param xmlMapping Mapping, to which to add the xml.
  * @param prefix Prefix for the names of properties which will be prepended to properties that form the id.
  * @param columnNameIterator Iterator over the column names that will be used for properties that form the id.
  * @param relatedIdMapping Id mapping data of the related entity.
  */
 private void AddRelatedToXmlMapping(XmlElement xmlMapping, String prefix,
     MetadataTools.ColumnNameEnumerator columnNameIterator,
     IdMappingData relatedIdMapping)
 {
     XmlElement properties = (XmlElement) relatedIdMapping.XmlRelationMapping.Clone();
     MetadataTools.PrefixNamesInPropertyElement(properties, prefix, columnNameIterator, true, true);
     foreach (XmlElement idProperty in (System.Collections.Generic.IList<XmlElement>) properties.ChildNodes) {
         xmlMapping.AppendChild((XmlElement) idProperty.Clone());
     }
 }
        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);
        }