public Path(final Vertex v0,final Vertex v1,final EdgeSample edgeSample){
  if (v0 == null)   throw new IllegalArgumentException();
  if (v1 == null)   throw new IllegalArgumentException();
  if (v0.sample == null)   throw new IllegalArgumentException();
  if (edgeSample == null)   throw new IllegalArgumentException();
  if (edgeSample.getSample() == null)   throw new IllegalArgumentException();
  this.vertices=new Vertex[]{v0,v1};
  this.preds=getPredicates(vertices);
  this.edgeSample=edgeSample;
  this.sumEstRead=v0.sample.estCard + edgeSample.estRead;
  this.sumEstCard=edgeSample.estCard;
  this.sumEstCost=getCost(this.sumEstRead,this.sumEstCard);
}

public Path ( final Vertex v0 , final Vertex v1 , final EdgeSample edgeSample ) { if ( v0 == null ) throw new IllegalArgumentException ( ) ; if ( v1 == null ) throw new IllegalArgumentException ( ) ; if ( v0 . sample == null ) throw new IllegalArgumentException ( ) ; if ( edgeSample == null ) throw new IllegalArgumentException ( ) ; if ( edgeSample . getSample ( ) == null ) throw new IllegalArgumentException ( ) ; this . vertices = new Vertex [ ] { v0 , v1 } ; this . preds = getPredicates ( vertices ) ; this . edgeSample = edgeSample ; this . sumEstRead = v0 . sample . estCard + edgeSample . estRead ; this . sumEstCard = edgeSample . estCard ; this . sumEstCost = getCost ( this . sumEstRead , this . sumEstCard ) ; }
create a path from a single edge .
