com.hazelcast.spi.partition

## Interface IPartition

-     public interface IPartition

  Represents a Partition. It is comparable to the `Partition` but it is optimized for SPI usage, so it exposes method not meant for regular Hazelcast users.

  The IPartition provides access to information about a partition, most importantly the addresses of the replica's and this information will be updated. So one can cache the IPartition and keep asking for partition information.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `MAX_BACKUP_COUNT` The maximum number of backups.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Address` | `getOwnerOrNull()` Returns the address of the owner of this partition.
    `int` | `getPartitionId()` Returns the partition ID.
    `Address` | `getReplicaAddress(int replicaIndex)` Returns the address of the replica.
    `boolean` | `isLocal()` Checks if the partition is local.
    `boolean` | `isMigrating()` Checks if there currently is a migration going on in this partition.
    `boolean` | `isOwnerOrBackup(Address address)` Checks if given address is owner of primary or backup of this partition.

- - ### Field Detail

    - #### MAX_BACKUP_COUNT

          static final int MAX_BACKUP_COUNT

      The maximum number of backups.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### isLocal

          boolean isLocal()

      Checks if the partition is local. A partition is local if and only if the `getOwnerOrNull()` returns the same address as 'this' address of the `ClusterService.getThisAddress()`. If the address is `null` or a different address, `false` is returned.
      Returns:
        `true` if local, `false` otherwise
      Since:
        3.5

    - #### getPartitionId

          int getPartitionId()

      Returns the partition ID.

      The partition ID will be between 0 and partitionCount (exclusive).

      Returns:
        the ID of the partition

    - #### getOwnerOrNull

          Address getOwnerOrNull()

      Returns the address of the owner of this partition.

      If no owner has been set yet, null is returned. So be careful with assuming that a non `null` value is returned.

      The value could be stale when returned.

      Returns:
        the owner

    - #### isMigrating

          boolean isMigrating()

      Checks if there currently is a migration going on in this partition.

      The returned value could be stale when it is returned.

      Returns:
        `true` if there is a migration going on, `false` otherwise

    - #### getReplicaAddress

          Address getReplicaAddress(int replicaIndex)

      Returns the address of the replica.

      The owner has replica index 0.

      The returned value could be `null` if the owner/replica has not yet been set.

      The returned value could be stale when it is returned.

      Parameters:
        `replicaIndex` - the index of the replica
      Returns:
        the address of the replica
      Throws:
        `ArrayIndexOutOfBoundsException` - when replica index is out of bounds

    - #### isOwnerOrBackup

          boolean isOwnerOrBackup(Address address)

      Checks if given address is owner of primary or backup of this partition.
      Parameters:
        `address` - owner address
      Returns:
        `true` if address is owner or backup, `false` otherwise

Copyright © 2019. All rights reserved.