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

Constructors
Constructor and Description
`Lease()`

### Method Summary

Methods
`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`