public object newInstance()
        {
            IVertexInstance        v = (IVertexInstance)this.Vertex.newInstance();
            IEdgeInstance <V, int> e = (IEdgeInstance <V, int>) this.EdgeFactory.newInstance();

            instance = new IDataContainerKVInstanceImpl <V, E, int, IEdgeInstance <V, int> > (v.Id, e, Rank);
            return(instance);
        }
 public override bool Equals(object obj)
 {
     if (typeof(IEdgeInstance <V, TV>).IsAssignableFrom(obj.GetType()))
     {
         IEdgeInstance <V, TV> o = (IEdgeInstance <V, TV>)obj;
         if (o.Source.Equals(this.source) && o.Target.Equals(this.target))
         {
             return(true);
         }
     }
     return(false);
 }