public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            SQLiteDeferColumnConstraint dst = obj as SQLiteDeferColumnConstraint;

            if (dst == null)
            {
                return(false);
            }

            if (this._deferrable != dst._deferrable)
            {
                return(false);
            }
            if (this._deferType != dst._deferType)
            {
                return(false);
            }

            return(base.Equals(obj));
        }
        public override object Clone()
        {
            SQLiteDeferColumnConstraint res = new SQLiteDeferColumnConstraint(this.ConstraintName);

            res._deferType  = _deferType;
            res._deferrable = _deferrable;
            return(res);
        }
 public SQLiteForeignKeyTableConstraint(string name, List <SQLiteIndexedColumn> columns, string foreignTable,
                                        List <SQLiteIndexedColumn> foreignColumns, List <SQLiteReferenceHandler> handlers,
                                        SQLiteDeferColumnConstraint deferConstraint)
     : base(name)
 {
     _columns         = columns;
     ForeignTable     = foreignTable;
     _foreignColumns  = foreignColumns;
     _handlers        = handlers;
     _deferConstraint = deferConstraint;
 }
        public override object Clone()
        {
            List <SQLiteIndexedColumn> columns = null;

            if (_columns != null)
            {
                columns = new List <SQLiteIndexedColumn>();
                foreach (SQLiteIndexedColumn ic in _columns)
                {
                    columns.Add((SQLiteIndexedColumn)ic.Clone());
                }
            }

            List <SQLiteIndexedColumn> foreignColumns = null;

            if (_foreignColumns != null)
            {
                foreignColumns = new List <SQLiteIndexedColumn>();
                foreach (SQLiteIndexedColumn ic in _foreignColumns)
                {
                    foreignColumns.Add((SQLiteIndexedColumn)ic.Clone());
                }
            }

            List <SQLiteReferenceHandler> handlers = null;

            if (_handlers != null)
            {
                handlers = new List <SQLiteReferenceHandler>();
                foreach (SQLiteReferenceHandler r in _handlers)
                {
                    handlers.Add((SQLiteReferenceHandler)r.Clone());
                }
            }

            SQLiteDeferColumnConstraint deferConstraint = null;

            if (_deferConstraint != null)
            {
                deferConstraint = (SQLiteDeferColumnConstraint)_deferConstraint.Clone();
            }

            SQLiteForeignKeyTableConstraint res = new SQLiteForeignKeyTableConstraint(this.ConstraintName);

            res._columns         = columns;
            res._foreignTable    = _foreignTable;
            res._foreignColumns  = foreignColumns;
            res._handlers        = handlers;
            res._deferConstraint = deferConstraint;
            return(res);
        }