package flare.analytics.cluster
{
    /**
     * Auxiliary class that represents a merge in a clustering.
     */
    internal class MergeEdge
    {
        public var i:int;
        public var j:int;
        public var next:MergeEdge = null;
        public var prev:MergeEdge = null;
        
        public function MergeEdge(i:int, j:int) {
            this.i = i;
            this.j = j;
        }
        
        public function update(i:int, j:int):void
        {
            this.i = i;
            this.j = j;
        }
        
        public function add(e:MergeEdge):MergeEdge {
            if (next) {
                e.next = next;
                next.prev = e;
            }
            next = e;
            e.prev = this;
            return e;
        }
        
        public function remove():void {
            if (prev) prev.next = next;
            if (next) next.prev = prev;
        }
        
    } // end of class MergeEdge
}