Class ClusterDescription

java.lang.Object
com.mongodb.connection.ClusterDescription

@Immutable public class ClusterDescription extends Object
Immutable snapshot state of a cluster.
Since:
3.0
  • Constructor Details

    • ClusterDescription

      public ClusterDescription(ClusterConnectionMode connectionMode, ClusterType type, List<ServerDescription> serverDescriptions)
      Creates a new ClusterDescription.
      Parameters:
      connectionMode - whether to connect directly to a single server or to multiple servers
      type - what sort of cluster this is
      serverDescriptions - the descriptions of all the servers currently in this cluster
    • ClusterDescription

      public ClusterDescription(ClusterConnectionMode connectionMode, ClusterType type, List<ServerDescription> serverDescriptions, @Nullable ClusterSettings clusterSettings, @Nullable ServerSettings serverSettings)
      Creates a new ClusterDescription.
      Parameters:
      connectionMode - whether to connect directly to a single server or to multiple servers
      type - what sort of cluster this is
      serverDescriptions - the descriptions of all the servers currently in this cluster
      clusterSettings - the cluster settings
      serverSettings - the server settings
      Since:
      3.4
    • ClusterDescription

      public ClusterDescription(ClusterConnectionMode connectionMode, ClusterType type, @Nullable MongoException srvResolutionException, List<ServerDescription> serverDescriptions, @Nullable ClusterSettings clusterSettings, @Nullable ServerSettings serverSettings)
      Creates a new ClusterDescription.
      Parameters:
      connectionMode - whether to connect directly to a single server or to multiple servers
      type - what sort of cluster this is
      srvResolutionException - an exception resolving the SRV record
      serverDescriptions - the descriptions of all the servers currently in this cluster
      clusterSettings - the cluster settings
      serverSettings - the server settings
      Since:
      3.10
  • Method Details

    • getClusterSettings

      public ClusterSettings getClusterSettings()
      Gets the cluster settings, which may be null if not provided.
      Returns:
      the cluster settings
      Since:
      3.4
    • getServerSettings

      public ServerSettings getServerSettings()
      Gets the server settings, which may be null if not provided.
      Returns:
      the server settings
      Since:
      3.4
    • isCompatibleWithDriver

      public boolean isCompatibleWithDriver()
      Return whether all servers in the cluster are compatible with the driver.
      Returns:
      true if all servers in the cluster are compatible with the driver
    • findServerIncompatiblyOlderThanDriver

      @Nullable public ServerDescription findServerIncompatiblyOlderThanDriver()
      Return a server in the cluster that is incompatibly older than the driver.
      Returns:
      a server in the cluster that is incompatibly older than the driver, or null if there are none
      Since:
      3.6
    • findServerIncompatiblyNewerThanDriver

      @Nullable public ServerDescription findServerIncompatiblyNewerThanDriver()
      Return a server in the cluster that is incompatibly newer than the driver.
      Returns:
      a server in the cluster that is incompatibly newer than the driver, or null if there are none
      Since:
      3.6
    • hasReadableServer

      public boolean hasReadableServer(ReadPreference readPreference)
      Returns true if this cluster has at least one server that satisfies the given read preference.
      Parameters:
      readPreference - the non-null read preference
      Returns:
      whether this cluster has at least one server that satisfies the given read preference
      Since:
      3.3
    • hasWritableServer

      public boolean hasWritableServer()
      Returns true if this cluster has at least one server that can be used for write operations.
      Returns:
      true if this cluster has at least one server that can be used for write operations
      Since:
      3.3
    • getConnectionMode

      public ClusterConnectionMode getConnectionMode()
      Gets whether this cluster is connecting to a single server or multiple servers.
      Returns:
      the ClusterConnectionMode for this cluster
    • getType

      public ClusterType getType()
      Gets the specific type of this cluster
      Returns:
      a ClusterType enum representing the type of this cluster
    • getSrvResolutionException

      @Nullable public MongoException getSrvResolutionException()
      Gets any exception encountered while resolving the SRV record for the initial host.
      Returns:
      any exception encountered while resolving the SRV record for the initial host, or null if none
      Since:
      3.10
    • getServerDescriptions

      public List<ServerDescription> getServerDescriptions()
      Returns an unmodifiable list of the server descriptions in this cluster description.
      Returns:
      an unmodifiable list of the server descriptions in this cluster description
      Since:
      3.3
    • getLogicalSessionTimeoutMinutes

      @Nullable public Integer getLogicalSessionTimeoutMinutes()
      Gets the logical session timeout in minutes, or null if at least one of the known servers does not support logical sessions.
      Returns:
      the logical session timeout in minutes, which may be null
      Since:
      3.6
      Since server release
      3.6
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getShortDescription

      public String getShortDescription()
      Returns a short, pretty description for this ClusterDescription.
      Returns:
      a String describing this cluster.