Example #1
0
 public JoinBuilder(JoinSpecification <TEntity> specification, IAliasIdentifier left, IAliasIdentifier right, JoinDirection direction, params JoinColumnPair[] columnPairs)
 {
     Left          = left;
     Right         = right;
     Direction     = direction;
     ColumnPairs   = columnPairs;
     Specification = specification;
 }
Example #2
0
 public RefTable(ForeignKeyConstraint constraint, JoinDirection direction)
 {
     if (constraint == null)
     {
         throw new ArgumentNullException("constraint");
     }
     Constraint = constraint;
     Direction  = direction;
 }
Example #3
0
 public SelectOuterJoinCommand(string firstTable, string secondTable, string firstJoinColumn,
                               string secondJoinColumn, IEnumerable <string> columnNames, JoinDirection joinDirection)
 {
     FirstTable       = firstTable;
     SecondJoinColumn = secondTable;
     FirstJoinColumn  = firstJoinColumn;
     SecondJoinColumn = secondJoinColumn;
     ColumnNames      = columnNames;
     JoinDirection    = joinDirection;
 }
Example #4
0
        public JoinTable(JoinTable referrer, ForeignKeyConstraint constraint, JoinDirection direction)
        {
            _joinBy        = constraint;
            _joinDirection = direction;
            Table tbl = constraint.Table;

            _referrer = referrer;
            if (referrer == null)
            {
                _kind = JoinKind.Root;
            }
            else
            {
                _kind = referrer.Kind;
                if (_kind == JoinKind.Root)
                {
                    _kind = JoinKind.Inner;
                }
                if (_kind != JoinKind.LeftOuter && _kind != JoinKind.FullOuter)
                {
                    foreach (string c in constraint.Columns)
                    {
                        Column col = tbl.Columns[c];
                        if (!col.NotNull)
                        {
                            _kind = JoinKind.LeftOuter;
                            break;
                        }
                    }
                }
            }
            switch (direction)
            {
            case JoinDirection.ReferFrom:
                _table          = constraint.Table;
                ReferrerColumns = (string[])constraint.RefColumns.Clone();
                JoinColumns     = (string[])constraint.Columns.Clone();
                break;

            case JoinDirection.ReferTo:
                _table          = constraint.ReferenceConstraint.Table;
                ReferrerColumns = (string[])constraint.Columns.Clone();
                JoinColumns     = (string[])constraint.RefColumns.Clone();
                break;

            default:
                throw new NotImplementedException();
            }
            InitVisibleColumns();
        }
Example #5
0
        private bool isCorrectOrientation(Tile tile1, Tile tile2, JoinDirection joinDirection)
        {
            switch (joinDirection)
            {
            case JoinDirection.Top:
                for (var i = 0; i < 10; i++)
                {
                    if (tile1._bitmap[i, 0] != tile2._bitmap[i, 9])
                    {
                        return(false);
                    }
                }
                return(true);

            case JoinDirection.Bottom:
                for (var i = 0; i < 10; i++)
                {
                    if (tile1._bitmap[i, 9] != tile2._bitmap[i, 0])
                    {
                        return(false);
                    }
                }
                return(true);

            case JoinDirection.Left:
                for (var i = 0; i < 10; i++)
                {
                    if (tile1._bitmap[0, i] != tile2._bitmap[9, i])
                    {
                        return(false);
                    }
                }
                return(true);

            case JoinDirection.Right:
                for (var i = 0; i < 10; i++)
                {
                    if (tile1._bitmap[9, i] != tile2._bitmap[0, i])
                    {
                        return(false);
                    }
                }
                return(true);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Example #6
0
        public JoinForm(Join join, IEnumerable <ScreenDocument> screens)
        {
            InitializeComponent();
            this.join = join;
            joinType.SelectedIndex = 0;

            foreach (ScreenDocument s in screens)
            {
                screenOne.Items.Add(s.Name);
                screenTwo.Items.Add(s.Name);
            }

            Direction = join.direction;
            JoinWidth = join.Size;
            ScreenOne = join.screenOne;
            ScreenTwo = join.screenTwo;
            OffsetOne = join.offsetOne;
            OffsetTwo = join.offsetTwo;
            Type      = join.type;
        }
Example #7
0
 public JoinBuilder(JoinSpecification <TEntity> specification, IAliasIdentifier left, IAliasIdentifier right, string rightAlias, JoinDirection direction, params JoinColumnPair[] columnPairs) :
     this(specification, left, right, direction, columnPairs)
 {
     _rightAlias = rightAlias;
 }
Example #8
0
 public static JoinQueryExpression Join(QueryExpression targetExpression, QueryExpression onExpression,
                                        JoinDirection direction = JoinDirection.Inner)
 {
     return(new JoinQueryExpression(targetExpression, direction, onExpression));
 }
Example #9
0
 public static JoinQueryExpression Join(QueryExpression targetExpression, ColumnIdentifierQueryExpression leftColumn, ColumnIdentifierQueryExpression rightColumn,
                                        JoinDirection direction = JoinDirection.Inner)
 {
     return(new JoinQueryExpression(targetExpression, direction,
                                    AreEqual(leftColumn, rightColumn)));
 }
Example #10
0
 public JoinQueryExpression(QueryExpression targetExpression, JoinDirection direction, QueryExpression onExpression)
 {
     TargetExpression = targetExpression ?? throw new ArgumentNullException(nameof(targetExpression));
     Direction        = direction;
     OnExpression     = onExpression ?? throw new ArgumentNullException(nameof(onExpression));
 }
Example #11
0
 public static void AddRefTables(List <RefTable> list, IEnumerable <ForeignKeyConstraint> foreignKeys, JoinDirection direction)
 {
     foreach (ForeignKeyConstraint cons in foreignKeys)
     {
         list.Add(new RefTable(cons, direction));
     }
 }
Example #12
0
        private void JoinAdjacentRegions(ImageRegion region1, ImageRegion region2, JoinDirection joinDirection)
        {
            switch (joinDirection)
            {
            case JoinDirection.Top:
                if (region2.Tile.BottomBoundary != region1.Tile.TopBoundary)
                {
                    if (region2.Tile.LeftBoundary == region1.Tile.TopBoundary)
                    {
                        RotateTile(region2.Tile, 3);
                    }

                    if (region2.Tile.TopBoundary == region1.Tile.TopBoundary)
                    {
                        RotateTile(region2.Tile, 2);
                    }

                    if (region2.Tile.RightBoundary == region1.Tile.TopBoundary)
                    {
                        RotateTile(region2.Tile, 1);
                    }
                }
                if (!isCorrectOrientation(region1.Tile, region2.Tile, joinDirection))
                {
                    Flip(region2.Tile, FlipOrientation.Vertical);
                }

                region1.Top.Set    = true;
                region1.Top.Region = region2;

                region2.Bottom.Set    = true;
                region2.Bottom.Region = region1;

                JoinToUsedAdjacentRegions(region2);

                break;

            case JoinDirection.Bottom:
                if (region2.Tile.TopBoundary != region1.Tile.BottomBoundary)
                {
                    if (region2.Tile.LeftBoundary == region1.Tile.BottomBoundary)
                    {
                        RotateTile(region2.Tile, 1);
                    }

                    if (region2.Tile.BottomBoundary == region1.Tile.BottomBoundary)
                    {
                        RotateTile(region2.Tile, 2);
                    }

                    if (region2.Tile.RightBoundary == region1.Tile.BottomBoundary)
                    {
                        RotateTile(region2.Tile, 3);
                    }
                }
                if (!isCorrectOrientation(region1.Tile, region2.Tile, joinDirection))
                {
                    Flip(region2.Tile, FlipOrientation.Vertical);
                }

                region1.Bottom.Set    = true;
                region1.Bottom.Region = region2;

                region2.Top.Set    = true;
                region2.Top.Region = region1;

                JoinToUsedAdjacentRegions(region2);

                break;

            case JoinDirection.Left:
                if (region2.Tile.RightBoundary != region1.Tile.LeftBoundary)
                {
                    if (region2.Tile.LeftBoundary == region1.Tile.LeftBoundary)
                    {
                        RotateTile(region2.Tile, 2);
                    }

                    if (region2.Tile.BottomBoundary == region1.Tile.LeftBoundary)
                    {
                        RotateTile(region2.Tile, 3);
                    }

                    if (region2.Tile.TopBoundary == region1.Tile.LeftBoundary)
                    {
                        RotateTile(region2.Tile, 1);
                    }
                }
                if (!isCorrectOrientation(region1.Tile, region2.Tile, joinDirection))
                {
                    Flip(region2.Tile, FlipOrientation.Horizontal);
                }

                region1.Left.Set    = true;
                region1.Left.Region = region2;

                region2.Right.Set    = true;
                region2.Right.Region = region1;

                JoinToUsedAdjacentRegions(region2);

                break;

            case JoinDirection.Right:
                if (region2.Tile.LeftBoundary != region1.Tile.RightBoundary)
                {
                    if (region2.Tile.RightBoundary == region1.Tile.RightBoundary)
                    {
                        RotateTile(region2.Tile, 2);
                    }

                    if (region2.Tile.BottomBoundary == region1.Tile.RightBoundary)
                    {
                        RotateTile(region2.Tile, 1);
                    }

                    if (region2.Tile.TopBoundary == region1.Tile.RightBoundary)
                    {
                        RotateTile(region2.Tile, 3);
                    }
                }
                if (!isCorrectOrientation(region1.Tile, region2.Tile, joinDirection))
                {
                    Flip(region2.Tile, FlipOrientation.Horizontal);
                }

                region1.Right.Set    = true;
                region1.Right.Region = region2;

                region2.Left.Set    = true;
                region2.Left.Region = region1;

                JoinToUsedAdjacentRegions(region2);

                break;
            }
        }