## net.i2p.data
Class Lease

    java.lang.Object
      net.i2p.data.DataStructureImpl
          net.i2p.data.Lease

All Implemented Interfaces:
  DataStructure

    public class Lease

extends DataStructureImpl

Defines the proof that a particular router / tunnel is allowed to receive messages for a particular Destination during some period of time.

Author:
  jrandom

Constructor Summary
`Lease()`

Method Summary
`boolean` `equals(Object object)`
`Date` `getEndDate()`
`Hash` `getGateway()` Retrieve the router at which the destination can be contacted
`int` `getNumFailure()` Deprecated. unused
`int` `getNumSuccess()` Deprecated. unused
`TunnelId` `getTunnelId()` Tunnel on the gateway to communicate with
`int` `hashCode()`
`boolean` `isExpired()` has this lease already expired?
`boolean` `isExpired(long fudgeFactor)` has this lease already expired (giving allowing up the fudgeFactor milliseconds for clock skew)?
`void` `readBytes(InputStream in)` Load up the current object with data from the given stream.
`void` `setEndDate(Date date)`
`void` `setGateway(Hash ident)` Configure the router at which the destination can be contacted
`void` `setNumFailure(int num)` Deprecated. unused
`void` `setNumSuccess(int num)` Deprecated. unused
`void` `setTunnelId(TunnelId id)` Configure the tunnel on the gateway to communicate with
`String` `toString()`
`void` `writeBytes(OutputStream out)` Write out the data structure to the stream, using the format defined in the I2P data structure specification.

Methods inherited from class net.i2p.data.DataStructureImpl
`calculateHash, fromBase64, fromByteArray, read, toBase64, toByteArray`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Lease

    public Lease()

Method Detail

### getGateway

    public Hash getGateway()

  Retrieve the router at which the destination can be contacted

  Returns:
    identity of the router acting as a gateway

### setGateway

    public void setGateway(Hash ident)

  Configure the router at which the destination can be contacted

  Parameters:
    `ident` - router acting as the gateway

### getTunnelId

    public TunnelId getTunnelId()

  Tunnel on the gateway to communicate with

  Returns:
    tunnel ID

### setTunnelId

    public void setTunnelId(TunnelId id)

  Configure the tunnel on the gateway to communicate with

  Parameters:
    `id` - tunnel ID

### getEndDate

    public Date getEndDate()

### setEndDate

    public void setEndDate(Date date)

### getNumSuccess

    public int getNumSuccess()

  Deprecated. unused

  Transient attribute of the lease, used to note how many times messages sent to the destination through the current lease were successful.

### setNumSuccess

    public void setNumSuccess(int num)

  Deprecated. unused

### getNumFailure

    public int getNumFailure()

  Deprecated. unused

  Transient attribute of the lease, used to note how many times messages sent to the destination through the current lease failed.

### setNumFailure

    public void setNumFailure(int num)

  Deprecated. unused

### isExpired

    public boolean isExpired()

  has this lease already expired?

### isExpired

    public boolean isExpired(long fudgeFactor)

  has this lease already expired (giving allowing up the fudgeFactor milliseconds for clock skew)?

### readBytes

    public void readBytes(InputStream in)
                   throws DataFormatException,
                          IOException

  Description copied from interface: `DataStructure`
  Load up the current object with data from the given stream. Data loaded this way must match the I2P data structure specification.

  Parameters:
    `in` - stream to read from
  Throws:
    `DataFormatException` - if the data is improperly formatted
    `IOException` - if there was a problem reading the stream

### writeBytes

    public void writeBytes(OutputStream out)
                    throws DataFormatException,
                           IOException

  Description copied from interface: `DataStructure`
  Write out the data structure to the stream, using the format defined in the I2P data structure specification.

  Parameters:
    `out` - stream to write to
  Throws:
    `DataFormatException` - if the data was incomplete or not yet ready to be written
    `IOException` - if there was a problem writing to the stream

### equals

    public boolean equals(Object object)

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`