コード例 #1
0
        protected virtual Expression ResolveExpression(Expression expression, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("expression", expression);
            ArgumentUtility.CheckNotNull("context", context);

            return(ResolvingExpressionVisitor.ResolveExpression(expression, _resolver, this, context, _uniqueIdentifierGenerator));
        }
コード例 #2
0
        public virtual SqlStatement ResolveSqlStatement(SqlStatement sqlStatement, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("sqlStatement", sqlStatement);
            ArgumentUtility.CheckNotNull("context", context);

            return(SqlStatementResolver.ResolveExpressions(this, sqlStatement, context));
        }
コード例 #3
0
        public static Expression ResolveExpression(
            Expression expression,
            IMappingResolver resolver,
            IMappingResolutionStage stage,
            IMappingResolutionContext context,
            UniqueIdentifierGenerator generator)
        {
            ArgumentUtility.CheckNotNull("expression", expression);
            ArgumentUtility.CheckNotNull("resolver", resolver);
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);
            ArgumentUtility.CheckNotNull("generator", generator);

            var entityIdentityResolver   = new EntityIdentityResolver(stage, resolver, context);
            var comparisonSplitter       = new CompoundExpressionComparisonSplitter();
            var namedExpressionCombiner  = new NamedExpressionCombiner(context);
            var groupAggregateSimplifier = new GroupAggregateSimplifier(stage, context);

            var visitor1 = new ResolvingExpressionVisitor(
                resolver, stage, context, generator, entityIdentityResolver, comparisonSplitter, namedExpressionCombiner, groupAggregateSimplifier, false);
            var result1 = visitor1.Visit(expression);

            var visitor2 = new ResolvingExpressionVisitor(
                resolver, stage, context, generator, entityIdentityResolver, comparisonSplitter, namedExpressionCombiner, groupAggregateSimplifier, true);
            var result2 = visitor2.Visit(result1);

            return(result2);
        }
コード例 #4
0
    public static Expression ResolveExpression (
        Expression expression,
        IMappingResolver resolver,
        IMappingResolutionStage stage,
        IMappingResolutionContext context,
        UniqueIdentifierGenerator generator)
    {
      ArgumentUtility.CheckNotNull ("expression", expression);
      ArgumentUtility.CheckNotNull ("resolver", resolver);
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("context", context);
      ArgumentUtility.CheckNotNull ("generator", generator);

      var entityIdentityResolver = new EntityIdentityResolver (stage, resolver, context);
      var comparisonSplitter = new CompoundExpressionComparisonSplitter();
      var namedExpressionCombiner = new NamedExpressionCombiner (context);
      var groupAggregateSimplifier = new GroupAggregateSimplifier (stage, context);

      var visitor1 = new ResolvingExpressionVisitor (
          resolver, stage, context, generator, entityIdentityResolver, comparisonSplitter, namedExpressionCombiner, groupAggregateSimplifier, false);
      var result1 = visitor1.VisitExpression (expression);

      var visitor2 = new ResolvingExpressionVisitor (
          resolver, stage, context, generator, entityIdentityResolver, comparisonSplitter, namedExpressionCombiner, groupAggregateSimplifier, true);
      var result2 = visitor2.VisitExpression (result1);
      return result2;
    }
コード例 #5
0
        protected ResolvingExpressionVisitor(
            IMappingResolver resolver,
            IMappingResolutionStage stage,
            IMappingResolutionContext context,
            UniqueIdentifierGenerator generator,
            IEntityIdentityResolver entityIdentityResolver,
            ICompoundExpressionComparisonSplitter compoundComparisonSplitter,
            INamedExpressionCombiner namedExpressionCombiner,
            IGroupAggregateSimplifier groupAggregateSimplifier,
            bool resolveEntityRefMemberExpressions)
        {
            ArgumentUtility.CheckNotNull("resolver", resolver);
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);
            ArgumentUtility.CheckNotNull("generator", generator);
            ArgumentUtility.CheckNotNull("entityIdentityResolver", entityIdentityResolver);
            ArgumentUtility.CheckNotNull("compoundComparisonSplitter", compoundComparisonSplitter);
            ArgumentUtility.CheckNotNull("namedExpressionCombiner", namedExpressionCombiner);
            ArgumentUtility.CheckNotNull("groupAggregateSimplifier", groupAggregateSimplifier);

            _resolver  = resolver;
            _stage     = stage;
            _context   = context;
            _generator = generator;
            _entityIdentityResolver     = entityIdentityResolver;
            _compoundComparisonSplitter = compoundComparisonSplitter;
            _namedExpressionCombiner    = namedExpressionCombiner;
            _groupAggregateSimplifier   = groupAggregateSimplifier;

            _resolveEntityRefMemberExpressions = resolveEntityRefMemberExpressions;
        }
コード例 #6
0
 public void SetUp ()
 {
   _resolverMock = MockRepository.GenerateStrictMock<IMappingResolver>();
   _unresolvedJoinInfo = SqlStatementModelObjectMother.CreateUnresolvedJoinInfo_KitchenCook();
   _generator = new UniqueIdentifierGenerator();
   _stageMock = MockRepository.GenerateStrictMock<IMappingResolutionStage> ();
   _mappingResolutionContext = new MappingResolutionContext();
 }
 public void SetUp ()
 {
   _stageMock = MockRepository.GenerateStrictMock<IMappingResolutionStage>();
   _resolverMock = MockRepository.GenerateMock<IMappingResolver>();
   _mappingResolutionContext = new MappingResolutionContext();
   _generator = new UniqueIdentifierGenerator();
   _groupAggregateSimplifier = MockRepository.GenerateStrictMock<IGroupAggregateSimplifier> ();
 }
コード例 #8
0
    public virtual Expression ResolveOrderingExpression (Expression expression, IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("expression", expression);
      ArgumentUtility.CheckNotNull ("context", context);

      var resolvedExpression = ResolveExpression (expression, context);
      return ApplyContext (resolvedExpression, SqlExpressionContext.SingleValueRequired, context);
    }
コード例 #9
0
        protected SqlStatementResolver(IMappingResolutionStage stage, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);

            _stage   = stage;
            _context = context;
        }
コード例 #10
0
 public void SetUp()
 {
     _resolverMock             = MockRepository.GenerateStrictMock <IMappingResolver>();
     _unresolvedJoinInfo       = SqlStatementModelObjectMother.CreateUnresolvedJoinInfo_KitchenCook();
     _generator                = new UniqueIdentifierGenerator();
     _stageMock                = MockRepository.GenerateStrictMock <IMappingResolutionStage> ();
     _mappingResolutionContext = new MappingResolutionContext();
 }
コード例 #11
0
    private SqlContextSelectionAdjuster (IMappingResolutionStage stage, IMappingResolutionContext mappingresolutionContext)
    {
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("mappingresolutionContext", mappingresolutionContext);

      _stage = stage;
      _mappingResolutionContext = mappingresolutionContext;
    }
コード例 #12
0
    public static IJoinInfo ApplyContext (IJoinInfo joinInfo, SqlExpressionContext expressionContext, IMappingResolutionStage stage, IMappingResolutionContext mappingResolutionContext)
    {
      ArgumentUtility.CheckNotNull ("joinInfo", joinInfo);
      ArgumentUtility.CheckNotNull ("stage", stage);

      var visitor = new SqlContextJoinInfoVisitor (stage, expressionContext, mappingResolutionContext);
      return joinInfo.Accept (visitor);
    }
コード例 #13
0
    public GroupAggregateSimplifier (IMappingResolutionStage stage, IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("context", context);

      _stage = stage;
      _context = context;
    }
コード例 #14
0
        public GroupAggregateSimplifier(IMappingResolutionStage stage, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);

            _stage   = stage;
            _context = context;
        }
コード例 #15
0
 public void SetUp()
 {
     _stageMock                = MockRepository.GenerateStrictMock <IMappingResolutionStage>();
     _resolverMock             = MockRepository.GenerateMock <IMappingResolver>();
     _mappingResolutionContext = new MappingResolutionContext();
     _generator                = new UniqueIdentifierGenerator();
     _groupAggregateSimplifier = MockRepository.GenerateStrictMock <IGroupAggregateSimplifier> ();
 }
コード例 #16
0
        private SqlContextSelectionAdjuster(IMappingResolutionStage stage, IMappingResolutionContext mappingresolutionContext)
        {
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("mappingresolutionContext", mappingresolutionContext);

            _stage = stage;
            _mappingResolutionContext = mappingresolutionContext;
        }
コード例 #17
0
    protected SqlContextTableInfoVisitor (IMappingResolutionStage stage, SqlExpressionContext expressionContext, IMappingResolutionContext mappingResolutionContext)
    {
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("mappingResolutionContext", mappingResolutionContext);

      _stage = stage;
      _expressionContext = expressionContext;
      _mappingResolutionContext = mappingResolutionContext;
    }
コード例 #18
0
        protected SqlContextTableInfoVisitor(IMappingResolutionStage stage, SqlExpressionContext expressionContext, IMappingResolutionContext mappingResolutionContext)
        {
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("mappingResolutionContext", mappingResolutionContext);

            _stage                    = stage;
            _expressionContext        = expressionContext;
            _mappingResolutionContext = mappingResolutionContext;
        }
コード例 #19
0
        public virtual Expression ResolveTopExpression(Expression expression, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("expression", expression);
            ArgumentUtility.CheckNotNull("context", context);

            var resolvedExpression = ResolveExpression(expression, context);

            return(ApplyContext(resolvedExpression, SqlExpressionContext.SingleValueRequired, context));
        }
コード例 #20
0
    public static SqlStatement ApplyContext (SqlStatement sqlStatement, SqlExpressionContext expressionContext, IMappingResolutionStage stage, IMappingResolutionContext mappingresolutionContext)
    {
      ArgumentUtility.CheckNotNull ("sqlStatement", sqlStatement);
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("mappingresolutionContext", mappingresolutionContext);

      var visitor = new SqlContextSelectionAdjuster (stage, mappingresolutionContext);
      return visitor.VisitSqlStatement (sqlStatement, expressionContext);
    }
コード例 #21
0
    public virtual Expression ResolveSelectExpression (Expression expression, SqlStatementBuilder sqlStatementBuilder, IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("expression", expression);
      ArgumentUtility.CheckNotNull ("sqlStatementBuilder", sqlStatementBuilder);
      ArgumentUtility.CheckNotNull ("context", context);

      var resolvedExpression = ResolvingSelectExpressionVisitor.ResolveExpression (expression, _resolver, this, context, _uniqueIdentifierGenerator, sqlStatementBuilder);
      return ApplyContext (resolvedExpression, SqlExpressionContext.ValueRequired, context);
    }
コード例 #22
0
        public Expression ResolveJoinCondition(Expression joinCondition, IMappingResolutionContext mappingResolutionContext)
        {
            ArgumentUtility.CheckNotNull("joinCondition", joinCondition);
            ArgumentUtility.CheckNotNull("mappingResolutionContext", mappingResolutionContext);

            var resolvedJoinCondition = ResolveExpression(joinCondition, mappingResolutionContext);

            return(ApplyContext(resolvedJoinCondition, SqlExpressionContext.PredicateRequired, mappingResolutionContext));
        }
コード例 #23
0
        public virtual ResolvedJoinInfo ResolveJoinInfo(IJoinInfo joinInfo, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("joinInfo", joinInfo);
            ArgumentUtility.CheckNotNull("context", context);

            var resolvedJoinInfo = ResolvingJoinInfoVisitor.ResolveJoinInfo(joinInfo, _resolver, _uniqueIdentifierGenerator, this, context);

            return((ResolvedJoinInfo)ApplyContext(resolvedJoinInfo, SqlExpressionContext.ValueRequired, context));
        }
コード例 #24
0
        public virtual IResolvedTableInfo ResolveTableInfo(ITableInfo tableInfo, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("tableInfo", tableInfo);
            ArgumentUtility.CheckNotNull("context", context);

            var resolvedTableInfo = ResolvingTableInfoVisitor.ResolveTableInfo(tableInfo, _resolver, _uniqueIdentifierGenerator, this, context);

            return((IResolvedTableInfo)ApplyContext(resolvedTableInfo, SqlExpressionContext.ValueRequired, context));
        }
コード例 #25
0
    protected SqlContextExpressionVisitor (SqlExpressionContext currentContext, IMappingResolutionStage stage, IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("context", context);

      _currentContext = currentContext;
      _stage = stage;
      _context = context;
    }
コード例 #26
0
        protected SqlContextExpressionVisitor(SqlExpressionContext currentContext, IMappingResolutionStage stage, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);

            _currentContext = currentContext;
            _stage          = stage;
            _context        = context;
        }
コード例 #27
0
        protected SubStatementReferenceResolver(ResolvedSubStatementTableInfo tableInfo, SqlTableBase sqlTable, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("tableInfo", tableInfo);
            ArgumentUtility.CheckNotNull("sqlTable", sqlTable);
            ArgumentUtility.CheckNotNull("context", context);

            _tableInfo = tableInfo;
            _sqlTable  = sqlTable;
            _context   = context;
        }
コード例 #28
0
    public static Expression ApplySqlExpressionContext (
        Expression expression, SqlExpressionContext initialSemantics, IMappingResolutionStage stage, IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("expression", expression);
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("context", context);

      var visitor = new SqlContextExpressionVisitor (initialSemantics, stage, context);
      return visitor.VisitExpression (expression);
    }
コード例 #29
0
    protected SubStatementReferenceResolver (ResolvedSubStatementTableInfo tableInfo, SqlTableBase sqlTable, IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("tableInfo", tableInfo);
      ArgumentUtility.CheckNotNull ("sqlTable", sqlTable);
      ArgumentUtility.CheckNotNull ("context", context);

      _tableInfo = tableInfo;
      _sqlTable = sqlTable;
      _context = context;
    }
コード例 #30
0
    public static IResolvedTableInfo ResolveTableInfo (ITableInfo tableInfo, IMappingResolver resolver, UniqueIdentifierGenerator generator, IMappingResolutionStage stage, IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("tableInfo", tableInfo);
      ArgumentUtility.CheckNotNull ("resolver", resolver);
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("context", context);

      var visitor = new ResolvingTableInfoVisitor (resolver, generator, stage, context);
      return (IResolvedTableInfo) tableInfo.Accept (visitor);
    }
コード例 #31
0
    public void SetUp ()
    {
      _stageMock = MockRepository.GenerateStrictMock<IMappingResolutionStage>();
      _mappingResolutionContext = new MappingResolutionContext();

      _visitor = new TestableSqlStatementResolver (_stageMock, _mappingResolutionContext);

      _unresolvedTableInfo = SqlStatementModelObjectMother.CreateUnresolvedTableInfo (typeof (Cook));
      _sqlTable = SqlStatementModelObjectMother.CreateSqlTable (_unresolvedTableInfo);
      _fakeResolvedSimpleTableInfo = SqlStatementModelObjectMother.CreateResolvedTableInfo (typeof (Cook));
    }
コード例 #32
0
        public void SetUp()
        {
            _stageMock = MockRepository.GenerateStrictMock <IMappingResolutionStage>();
            _mappingResolutionContext = new MappingResolutionContext();

            _visitor = new TestableSqlStatementResolver(_stageMock, _mappingResolutionContext);

            _unresolvedTableInfo         = SqlStatementModelObjectMother.CreateUnresolvedTableInfo(typeof(Cook));
            _sqlTable                    = SqlStatementModelObjectMother.CreateSqlTable(_unresolvedTableInfo);
            _fakeResolvedSimpleTableInfo = SqlStatementModelObjectMother.CreateResolvedTableInfo(typeof(Cook));
        }
コード例 #33
0
    public Expression ResolveReference (SqlTableBase sqlTable, IMappingResolver mappingResolver, IMappingResolutionContext context, UniqueIdentifierGenerator generator)
    {
      ArgumentUtility.CheckNotNull ("sqlTable", sqlTable);
      ArgumentUtility.CheckNotNull ("mappingResolver", mappingResolver);
      ArgumentUtility.CheckNotNull ("context", context);
      ArgumentUtility.CheckNotNull ("generator", generator);

      var entity = (SqlEntityExpression) mappingResolver.ResolveSimpleTableInfo (this, generator);
      context.AddSqlEntityMapping (entity, sqlTable);
      return entity;
    }
コード例 #34
0
        protected ResolvingTableInfoVisitor(IMappingResolver resolver, UniqueIdentifierGenerator generator, IMappingResolutionStage stage, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("generator", generator);
            ArgumentUtility.CheckNotNull("resolver", resolver);
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);

            _resolver  = resolver;
            _generator = generator;
            _stage     = stage;
            _context   = context;
        }
コード例 #35
0
    protected ResolvingTableInfoVisitor (IMappingResolver resolver, UniqueIdentifierGenerator generator, IMappingResolutionStage stage, IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("generator", generator);
      ArgumentUtility.CheckNotNull ("resolver", resolver);
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("context", context);

      _resolver = resolver;
      _generator = generator;
      _stage= stage;
      _context = context;
    }
コード例 #36
0
 public void SetUp ()
 {
   _stageMock = MockRepository.GenerateStrictMock<IMappingResolutionStage>();
   _mappingResolutionContext = new MappingResolutionContext();
   _valueRequiredVisitor = new TestableSqlContextExpressionVisitor (SqlExpressionContext.ValueRequired, _stageMock, _mappingResolutionContext);
   _singleValueRequiredVisitor = new TestableSqlContextExpressionVisitor (
       SqlExpressionContext.SingleValueRequired,
       _stageMock,
       _mappingResolutionContext);
   _predicateRequiredVisitor = new TestableSqlContextExpressionVisitor (
       SqlExpressionContext.PredicateRequired, _stageMock, _mappingResolutionContext);
 }
コード例 #37
0
    public void SetUp ()
    {
      _resolverMock = MockRepository.GenerateMock<IMappingResolver>();
      _uniqueIdentifierGenerator = new UniqueIdentifierGenerator();

      _unresolvedTableInfo = SqlStatementModelObjectMother.CreateUnresolvedTableInfo (typeof (Cook));
      _sqlTable = SqlStatementModelObjectMother.CreateSqlTable (_unresolvedTableInfo);
      _fakeResolvedSimpleTableInfo = SqlStatementModelObjectMother.CreateResolvedTableInfo (typeof (Cook));

      _stage = new DefaultMappingResolutionStage (_resolverMock, _uniqueIdentifierGenerator);

      _mappingResolutionContext = new MappingResolutionContext();
    }
コード例 #38
0
        protected MemberAccessResolver(
            MemberInfo memberInfo, IMappingResolver mappingResolver, IMappingResolutionStage stage, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("memberInfo", memberInfo);
            ArgumentUtility.CheckNotNull("mappingResolver", mappingResolver);
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);

            _memberInfo      = memberInfo;
            _mappingResolver = mappingResolver;
            _stage           = stage;
            _context         = context;
        }
コード例 #39
0
        public void SetUp()
        {
            _resolverMock = MockRepository.GenerateMock <IMappingResolver>();
            _uniqueIdentifierGenerator = new UniqueIdentifierGenerator();

            _unresolvedTableInfo         = SqlStatementModelObjectMother.CreateUnresolvedTableInfo(typeof(Cook));
            _sqlTable                    = SqlStatementModelObjectMother.CreateSqlTable(_unresolvedTableInfo);
            _fakeResolvedSimpleTableInfo = SqlStatementModelObjectMother.CreateResolvedTableInfo(typeof(Cook));

            _stage = new DefaultMappingResolutionStage(_resolverMock, _uniqueIdentifierGenerator);

            _mappingResolutionContext = new MappingResolutionContext();
        }
コード例 #40
0
        public virtual SqlStatement ResolveSqlStatement(SqlStatement sqlStatement, IMappingResolutionContext context)
        {
            Assert.That(sqlStatement.SelectProjection, Is.TypeOf(typeof(ConstantExpression)));
            Assert.That(((ConstantExpression)sqlStatement.SelectProjection).Value, Is.EqualTo("Value added by preparation mixin"));

            var builder = new SqlStatementBuilder
            {
                DataInfo         = new StreamedScalarValueInfo(typeof(string)),
                SelectProjection =
                    new SqlEntityDefinitionExpression(typeof(int), "c", "CookTable", e => e.GetColumn(typeof(int), "ID", false))
            };

            return(builder.GetSqlStatement());
        }
コード例 #41
0
    public void SetUp ()
    {
      _stageMock = MockRepository.GenerateStrictMock<IMappingResolutionStage>();
      _resolverMock = MockRepository.GenerateStrictMock<IMappingResolver>();
      _sqlTable = SqlStatementModelObjectMother.CreateSqlTable_WithResolvedTableInfo (typeof (Cook));
      _mappingResolutionContext = new MappingResolutionContext();
      _generator = new UniqueIdentifierGenerator();
      _entityIdentityResolverMock = MockRepository.GenerateStrictMock<IEntityIdentityResolver> ();
      _compoundComparisonSplitterMock = MockRepository.GenerateStrictMock<ICompoundExpressionComparisonSplitter> ();
      _namedExpressionCombinerMock = MockRepository.GenerateStrictMock<INamedExpressionCombiner>();
      _groupAggregateSimplifierMock = MockRepository.GenerateStrictMock<IGroupAggregateSimplifier>();

      _visitor = CreateVisitor (true);
    }
コード例 #42
0
        public void SetUp()
        {
            _stageMock                      = MockRepository.GenerateStrictMock <IMappingResolutionStage>();
            _resolverMock                   = MockRepository.GenerateStrictMock <IMappingResolver>();
            _sqlTable                       = SqlStatementModelObjectMother.CreateSqlTable_WithResolvedTableInfo(typeof(Cook));
            _mappingResolutionContext       = new MappingResolutionContext();
            _generator                      = new UniqueIdentifierGenerator();
            _entityIdentityResolverMock     = MockRepository.GenerateStrictMock <IEntityIdentityResolver> ();
            _compoundComparisonSplitterMock = MockRepository.GenerateStrictMock <ICompoundExpressionComparisonSplitter> ();
            _namedExpressionCombinerMock    = MockRepository.GenerateStrictMock <INamedExpressionCombiner>();
            _groupAggregateSimplifierMock   = MockRepository.GenerateStrictMock <IGroupAggregateSimplifier>();

            _visitor = CreateVisitor(true);
        }
コード例 #43
0
        public static Expression ResolveSubStatementReferenceExpression(
            Expression referencedExpression,
            ResolvedSubStatementTableInfo containingSubStatementTableInfo,
            SqlTableBase containingSqlTable,
            IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("referencedExpression", referencedExpression);
            ArgumentUtility.CheckNotNull("containingSubStatementTableInfo", containingSubStatementTableInfo);
            ArgumentUtility.CheckNotNull("containingSqlTable", containingSqlTable);

            var visitor = new SubStatementReferenceResolver(containingSubStatementTableInfo, containingSqlTable, context);
            var result  = visitor.VisitExpression(referencedExpression);

            return(result);
        }
コード例 #44
0
    public static Expression ResolveSubStatementReferenceExpression (
        Expression referencedExpression,
        ResolvedSubStatementTableInfo containingSubStatementTableInfo,
        SqlTableBase containingSqlTable,
        IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("referencedExpression", referencedExpression);
      ArgumentUtility.CheckNotNull ("containingSubStatementTableInfo", containingSubStatementTableInfo);
      ArgumentUtility.CheckNotNull ("containingSqlTable", containingSqlTable);
      
      var visitor = new SubStatementReferenceResolver (containingSubStatementTableInfo, containingSqlTable, context);
      var result = visitor.VisitExpression (referencedExpression);

      return result;
    }
コード例 #45
0
    public static ResolvedJoinInfo ResolveJoinInfo (
        IJoinInfo joinInfo,
        IMappingResolver resolver,
        UniqueIdentifierGenerator generator,
        IMappingResolutionStage stage,
        IMappingResolutionContext context)
    {
      ArgumentUtility.CheckNotNull ("joinInfo", joinInfo);
      ArgumentUtility.CheckNotNull ("resolver", resolver);
      ArgumentUtility.CheckNotNull ("generator", generator);
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("context", context);

      var visitor = new ResolvingJoinInfoVisitor (resolver, generator, stage, context);
      return (ResolvedJoinInfo) joinInfo.Accept (visitor);
    }
コード例 #46
0
        public static Expression ResolveMemberAccess(
            Expression resolvedSourceExpression,
            MemberInfo memberInfo,
            IMappingResolver mappingResolver,
            IMappingResolutionStage mappingResolutionStage,
            IMappingResolutionContext mappingResolutionContext)
        {
            ArgumentUtility.CheckNotNull("resolvedSourceExpression", resolvedSourceExpression);
            ArgumentUtility.CheckNotNull("memberInfo", memberInfo);
            ArgumentUtility.CheckNotNull("mappingResolver", mappingResolver);
            ArgumentUtility.CheckNotNull("mappingResolutionStage", mappingResolutionStage);
            ArgumentUtility.CheckNotNull("mappingResolutionContext", mappingResolutionContext);

            var resolver = new MemberAccessResolver(memberInfo, mappingResolver, mappingResolutionStage, mappingResolutionContext);

            return(resolver.Visit(resolvedSourceExpression));
        }
コード例 #47
0
        public static ResolvedJoinInfo ResolveJoinInfo(
            IJoinInfo joinInfo,
            IMappingResolver resolver,
            UniqueIdentifierGenerator generator,
            IMappingResolutionStage stage,
            IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("joinInfo", joinInfo);
            ArgumentUtility.CheckNotNull("resolver", resolver);
            ArgumentUtility.CheckNotNull("generator", generator);
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);

            var visitor = new ResolvingJoinInfoVisitor(resolver, generator, stage, context);

            return((ResolvedJoinInfo)joinInfo.Accept(visitor));
        }
コード例 #48
0
 protected ResolvingSelectExpressionVisitor(
     IMappingResolver resolver,
     IMappingResolutionStage stage,
     IMappingResolutionContext context,
     UniqueIdentifierGenerator generator,
     IEntityIdentityResolver entityIdentityResolver,
     ICompoundExpressionComparisonSplitter comparisonSplitter,
     INamedExpressionCombiner namedExpressionCombiner,
     IGroupAggregateSimplifier groupAggregateSimplifier,
     bool resolveEntityRefMemberExpressions,
     SqlStatementBuilder sqlStatementBuilder)
     : base(
         resolver,
         stage,
         context,
         generator,
         entityIdentityResolver,
         comparisonSplitter,
         namedExpressionCombiner,
         groupAggregateSimplifier,
         resolveEntityRefMemberExpressions)
 {
     _sqlStatementBuilder = sqlStatementBuilder;
 }
コード例 #49
0
 protected ResolvingSelectExpressionVisitor (
     IMappingResolver resolver,
     IMappingResolutionStage stage,
     IMappingResolutionContext context,
     UniqueIdentifierGenerator generator, 
     IEntityIdentityResolver entityIdentityResolver,
     ICompoundExpressionComparisonSplitter comparisonSplitter,
     INamedExpressionCombiner namedExpressionCombiner,
     IGroupAggregateSimplifier groupAggregateSimplifier,
     bool resolveEntityRefMemberExpressions,
     SqlStatementBuilder sqlStatementBuilder)
     : base (
         resolver,
         stage,
         context,
         generator,
         entityIdentityResolver,
         comparisonSplitter,
         namedExpressionCombiner,
         groupAggregateSimplifier,
         resolveEntityRefMemberExpressions)
 {
   _sqlStatementBuilder = sqlStatementBuilder;
 }
コード例 #50
0
        public static Expression ApplySqlExpressionContext(
            Expression expression, SqlExpressionContext initialSemantics, IMappingResolutionStage stage, IMappingResolutionContext context)
        {
            ArgumentUtility.CheckNotNull("expression", expression);
            ArgumentUtility.CheckNotNull("stage", stage);
            ArgumentUtility.CheckNotNull("context", context);

            var visitor = new SqlContextExpressionVisitor(initialSemantics, stage, context);

            return(visitor.Visit(expression));
        }
コード例 #51
0
 public TestableSqlContextExpressionVisitor(SqlExpressionContext currentContext, IMappingResolutionStage stage, IMappingResolutionContext context)
     : base(currentContext, stage, context)
 {
 }
コード例 #52
0
 public Expression ResolveReference (SqlTableBase sqlTable, IMappingResolver mappingResolver, IMappingResolutionContext context, UniqueIdentifierGenerator generator)
 {
   var selectProjection = SqlStatement.SelectProjection;
   return SubStatementReferenceResolver.ResolveSubStatementReferenceExpression (selectProjection, this, sqlTable, context);
 }
コード例 #53
0
 public NamedExpressionCombiner(IMappingResolutionContext mappingResolutionContext)
 {
     ArgumentUtility.CheckNotNull("mappingResolutionContext", mappingResolutionContext);
     _mappingResolutionContext = mappingResolutionContext;
 }
コード例 #54
0
 public NamedExpressionCombiner (IMappingResolutionContext mappingResolutionContext)
 {
   ArgumentUtility.CheckNotNull ("mappingResolutionContext", mappingResolutionContext);
   _mappingResolutionContext = mappingResolutionContext;
 }
コード例 #55
0
    protected ResolvingExpressionVisitor (
        IMappingResolver resolver,
        IMappingResolutionStage stage,
        IMappingResolutionContext context,
        UniqueIdentifierGenerator generator,
        IEntityIdentityResolver entityIdentityResolver,
        ICompoundExpressionComparisonSplitter compoundComparisonSplitter,
        INamedExpressionCombiner namedExpressionCombiner,
        IGroupAggregateSimplifier groupAggregateSimplifier,
        bool resolveEntityRefMemberExpressions)
    {
      ArgumentUtility.CheckNotNull ("resolver", resolver);
      ArgumentUtility.CheckNotNull ("stage", stage);
      ArgumentUtility.CheckNotNull ("context", context);
      ArgumentUtility.CheckNotNull ("generator", generator);
      ArgumentUtility.CheckNotNull ("entityIdentityResolver", entityIdentityResolver);
      ArgumentUtility.CheckNotNull ("compoundComparisonSplitter", compoundComparisonSplitter);
      ArgumentUtility.CheckNotNull ("namedExpressionCombiner", namedExpressionCombiner);
      ArgumentUtility.CheckNotNull ("groupAggregateSimplifier", groupAggregateSimplifier);
      
      _resolver = resolver;
      _stage = stage;
      _context = context;
      _generator = generator;
      _entityIdentityResolver = entityIdentityResolver;
      _compoundComparisonSplitter = compoundComparisonSplitter;
      _namedExpressionCombiner = namedExpressionCombiner;
      _groupAggregateSimplifier = groupAggregateSimplifier;

      _resolveEntityRefMemberExpressions = resolveEntityRefMemberExpressions;
    }
コード例 #56
0
 public void SetUp()
 {
     _context = new MappingResolutionContext();
 }
コード例 #57
0
 public void SetUp ()
 {
   _stageMock = MockRepository.GenerateMock<IMappingResolutionStage>();
   _mappingResolutionContext = new MappingResolutionContext();
 }
 public TestableSqlContextExpressionVisitor (SqlExpressionContext currentContext, IMappingResolutionStage stage, IMappingResolutionContext context)
     : base (currentContext, stage, context)
 {
 }
コード例 #59
0
 public EntityIdentityResolver (IMappingResolutionStage stage, IMappingResolver resolver, IMappingResolutionContext context)
 {
   _stage = stage;
   _resolver = resolver;
   _context = context;
 }
コード例 #60
0
 public void SetUp ()
 {
   _context = new MappingResolutionContext();
 }