////////////////////////////////////////////////////////////// // This code was generated by LLBLGen Pro 5.7. ////////////////////////////////////////////////////////////// // Code is generated on: // Code is generated using templates: SD.TemplateBindings.SharedTemplates // Templates vendor: Solutions Design. ////////////////////////////////////////////////////////////// using System; using System.Collections.Generic; using Datalib.EntityClasses; using Datalib.HelperClasses; using Datalib.RelationClasses; using SD.LLBLGen.Pro.ORMSupportClasses; namespace Datalib.FactoryClasses { // __LLBLGENPRO_USER_CODE_REGION_START AdditionalNamespaces // __LLBLGENPRO_USER_CODE_REGION_END /// general base class for the generated factories [Serializable] public partial class EntityFactoryBase2 : EntityFactoryCore2 where TEntity : EntityBase2, IEntity2 { private readonly Datalib.EntityType _typeOfEntity; private readonly bool _isInHierarchy; /// CTor /// Name of the entity. /// The type of entity. /// If true, the entity of this factory is in an inheritance hierarchy, false otherwise public EntityFactoryBase2(string entityName, Datalib.EntityType typeOfEntity, bool isInHierarchy) : base(entityName) { _typeOfEntity = typeOfEntity; _isInHierarchy = isInHierarchy; } /// public override IEntityFields2 CreateFields() { return ModelInfoProviderSingleton.GetInstance().GetEntityFields(this.ForEntityName); } /// public override IEntity2 CreateEntityFromEntityTypeValue(int entityTypeValue) { return GeneralEntityFactory.Create((Datalib.EntityType)entityTypeValue); } /// public override IRelationCollection CreateHierarchyRelations(string objectAlias) { return ModelInfoProviderSingleton.GetInstance().GetHierarchyRelations(this.ForEntityName, objectAlias); } /// public override IEntityFactory2 GetEntityFactory(object[] fieldValues, Dictionary entityFieldStartIndexesPerEntity) { return (IEntityFactory2)ModelInfoProviderSingleton.GetInstance().GetEntityFactory(this.ForEntityName, fieldValues, entityFieldStartIndexesPerEntity) ?? this; } /// public override IPredicateExpression GetEntityTypeFilter(bool negate, string objectAlias) { return ModelInfoProviderSingleton.GetInstance().GetEntityTypeFilter(this.ForEntityName, objectAlias, negate); } /// public override IEntityCollection2 CreateEntityCollection() { return new EntityCollection(this); } /// public override IEntityFields2 CreateHierarchyFields() { return _isInHierarchy ? new EntityFields2(ModelInfoProviderSingleton.GetInstance().GetHierarchyFields(this.ForEntityName), ModelInfoProviderSingleton.GetInstance(), null) : base.CreateHierarchyFields(); } /// protected override Type ForEntityType { get { return typeof(TEntity); } } } /// Factory to create new, empty TblFieldEntity objects. [Serializable] public partial class TblFieldEntityFactory : EntityFactoryBase2 { /// CTor public TblFieldEntityFactory() : base("TblFieldEntity", Datalib.EntityType.TblFieldEntity, false) { } /// protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblFieldEntity(fields); } } /// Factory to create new, empty TblQuestionEntity objects. [Serializable] public partial class TblQuestionEntityFactory : EntityFactoryBase2 { /// CTor public TblQuestionEntityFactory() : base("TblQuestionEntity", Datalib.EntityType.TblQuestionEntity, false) { } /// protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuestionEntity(fields); } } /// Factory to create new, empty TblQuizEntity objects. [Serializable] public partial class TblQuizEntityFactory : EntityFactoryBase2 { /// CTor public TblQuizEntityFactory() : base("TblQuizEntity", Datalib.EntityType.TblQuizEntity, false) { } /// protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuizEntity(fields); } } /// Factory to create new, empty TblQuizQuestionEntity objects. [Serializable] public partial class TblQuizQuestionEntityFactory : EntityFactoryBase2 { /// CTor public TblQuizQuestionEntityFactory() : base("TblQuizQuestionEntity", Datalib.EntityType.TblQuizQuestionEntity, false) { } /// protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuizQuestionEntity(fields); } } /// Factory to create new, empty TblQuizTemplateEntity objects. [Serializable] public partial class TblQuizTemplateEntityFactory : EntityFactoryBase2 { /// CTor public TblQuizTemplateEntityFactory() : base("TblQuizTemplateEntity", Datalib.EntityType.TblQuizTemplateEntity, false) { } /// protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuizTemplateEntity(fields); } } /// Factory to create new, empty TblQuizTemplateDetailEntity objects. [Serializable] public partial class TblQuizTemplateDetailEntityFactory : EntityFactoryBase2 { /// CTor public TblQuizTemplateDetailEntityFactory() : base("TblQuizTemplateDetailEntity", Datalib.EntityType.TblQuizTemplateDetailEntity, false) { } /// protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblQuizTemplateDetailEntity(fields); } } /// Factory to create new, empty TblSubjectEntity objects. [Serializable] public partial class TblSubjectEntityFactory : EntityFactoryBase2 { /// CTor public TblSubjectEntityFactory() : base("TblSubjectEntity", Datalib.EntityType.TblSubjectEntity, false) { } /// protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblSubjectEntity(fields); } } /// Factory to create new, empty TblTrainingTypeEntity objects. [Serializable] public partial class TblTrainingTypeEntityFactory : EntityFactoryBase2 { /// CTor public TblTrainingTypeEntityFactory() : base("TblTrainingTypeEntity", Datalib.EntityType.TblTrainingTypeEntity, false) { } /// protected override IEntity2 CreateImpl(IEntityFields2 fields) { return new TblTrainingTypeEntity(fields); } } /// Factory to create new, empty Entity objects based on the entity type specified. Uses entity specific factory objects [Serializable] public partial class GeneralEntityFactory { /// Creates a new, empty Entity object of the type specified /// The entity type to create. /// A new, empty Entity object. public static IEntity2 Create(Datalib.EntityType entityTypeToCreate) { var factoryToUse = EntityFactoryFactory.GetFactory(entityTypeToCreate); IEntity2 toReturn = null; if(factoryToUse != null) { toReturn = factoryToUse.Create(); } return toReturn; } } /// Class which is used to obtain the entity factory based on the .NET type of the entity. [Serializable] public static class EntityFactoryFactory { private static Dictionary _factoryPerType = new Dictionary(); /// Initializes the class. static EntityFactoryFactory() { foreach(int entityTypeValue in Enum.GetValues(typeof(Datalib.EntityType))) { var factory = GetFactory((Datalib.EntityType)entityTypeValue); _factoryPerType.Add(factory.ForEntityType ?? factory.Create().GetType(), factory); } } /// Gets the factory of the entity with the .NET type specified /// The type of entity. /// factory to use or null if not found public static IEntityFactory2 GetFactory(Type typeOfEntity) { return _factoryPerType.GetValue(typeOfEntity); } /// Gets the factory of the entity with the Datalib.EntityType specified /// The type of entity. /// factory to use or null if not found public static IEntityFactory2 GetFactory(Datalib.EntityType typeOfEntity) { switch(typeOfEntity) { case Datalib.EntityType.TblFieldEntity: return new TblFieldEntityFactory(); case Datalib.EntityType.TblQuestionEntity: return new TblQuestionEntityFactory(); case Datalib.EntityType.TblQuizEntity: return new TblQuizEntityFactory(); case Datalib.EntityType.TblQuizQuestionEntity: return new TblQuizQuestionEntityFactory(); case Datalib.EntityType.TblQuizTemplateEntity: return new TblQuizTemplateEntityFactory(); case Datalib.EntityType.TblQuizTemplateDetailEntity: return new TblQuizTemplateDetailEntityFactory(); case Datalib.EntityType.TblSubjectEntity: return new TblSubjectEntityFactory(); case Datalib.EntityType.TblTrainingTypeEntity: return new TblTrainingTypeEntityFactory(); default: return null; } } } /// Element creator for creating project elements from somewhere else, like inside Linq providers. public class ElementCreator : ElementCreatorBase, IElementCreator2 { /// Gets the factory of the Entity type with the Datalib.EntityType value passed in /// The entity type value. /// the entity factory of the entity type or null if not found public IEntityFactory2 GetFactory(int entityTypeValue) { return (IEntityFactory2)this.GetFactoryImpl(entityTypeValue); } /// Gets the factory of the Entity type with the .NET type passed in /// The type of entity. /// the entity factory of the entity type or null if not found public IEntityFactory2 GetFactory(Type typeOfEntity) { return (IEntityFactory2)this.GetFactoryImpl(typeOfEntity); } /// Creates a new resultset fields object with the number of field slots reserved as specified /// The number of fields. /// ready to use resultsetfields object public IEntityFields2 CreateResultsetFields(int numberOfFields) { return new ResultsetFields(numberOfFields); } /// public override IInheritanceInfoProvider ObtainInheritanceInfoProviderInstance() { return ModelInfoProviderSingleton.GetInstance(); } /// public override IDynamicRelation CreateDynamicRelation(DerivedTableDefinition leftOperand) { return new DynamicRelation(leftOperand); } /// public override IDynamicRelation CreateDynamicRelation(DerivedTableDefinition leftOperand, JoinHint joinType, DerivedTableDefinition rightOperand, IPredicate onClause) { return new DynamicRelation(leftOperand, joinType, rightOperand, onClause); } /// public override IDynamicRelation CreateDynamicRelation(IEntityFieldCore leftOperand, JoinHint joinType, DerivedTableDefinition rightOperand, string aliasLeftOperand, IPredicate onClause) { return new DynamicRelation(leftOperand, joinType, rightOperand, aliasLeftOperand, onClause); } /// public override IDynamicRelation CreateDynamicRelation(DerivedTableDefinition leftOperand, JoinHint joinType, string rightOperandEntityName, string aliasRightOperand, IPredicate onClause) { return new DynamicRelation(leftOperand, joinType, (Datalib.EntityType)Enum.Parse(typeof(Datalib.EntityType), rightOperandEntityName, false), aliasRightOperand, onClause); } /// public override IDynamicRelation CreateDynamicRelation(string leftOperandEntityName, JoinHint joinType, string rightOperandEntityName, string aliasLeftOperand, string aliasRightOperand, IPredicate onClause) { return new DynamicRelation((Datalib.EntityType)Enum.Parse(typeof(Datalib.EntityType), leftOperandEntityName, false), joinType, (Datalib.EntityType)Enum.Parse(typeof(Datalib.EntityType), rightOperandEntityName, false), aliasLeftOperand, aliasRightOperand, onClause); } /// public override IDynamicRelation CreateDynamicRelation(IEntityFieldCore leftOperand, JoinHint joinType, string rightOperandEntityName, string aliasLeftOperand, string aliasRightOperand, IPredicate onClause) { return new DynamicRelation(leftOperand, joinType, (Datalib.EntityType)Enum.Parse(typeof(Datalib.EntityType), rightOperandEntityName, false), aliasLeftOperand, aliasRightOperand, onClause); } /// protected override IEntityFactoryCore GetFactoryImpl(int entityTypeValue) { return EntityFactoryFactory.GetFactory((Datalib.EntityType)entityTypeValue); } /// protected override IEntityFactoryCore GetFactoryImpl(Type typeOfEntity) { return EntityFactoryFactory.GetFactory(typeOfEntity); } } }