ConnectorState Class

Overview

The ConnectorState class is a part of the org.sunbird.obsrv.connector.model package. It encapsulates the state information for a connector instance, allowing for the tracking and management of various state attributes associated with the connector's lifecycle.

Class Definition

Ref: https://github.com/Sunbird-Obsrv/connector-sdk-scala/blob/main/connector-sdk-core/src/main/scala/org/sunbird/obsrv/connector/model/ConnectorState.scala

Args

connectorInstanceId: String

  • Description: The unique identifier for the specific instance of the connector.

stateJson: Option[String]

  • Description: The JSON representation of the state for the connector instance.

state: mutable.Map[String, AnyRef]

  • Description: A mutable map that holds the state attributes for the connector instance.

Methods

getState[T](attribute: String): Option[T]

  • Description: Retrieves the value of the specified state attribute.

  • Parameters: attribute - The name of the state attribute to retrieve.

  • Returns: An Option containing the value of the state attribute, if it exists.

getState[T](attribute: String, defaultValue: T): T

  • Description: Retrieves the value of the specified state attribute, or returns a default value if the attribute does not exist.

  • Parameters:

    • attribute - The name of the state attribute to retrieve.

    • defaultValue - The default value to return if the attribute does not exist.

  • Returns: The value of the state attribute, or the default value.

putState[T <: AnyRef](attrib: String, value: T): Unit

  • Description: Adds or updates the value of the specified state attribute.

  • Parameters:

    • attrib - The name of the state attribute to add or update.

    • value - The value to set for the state attribute.

removeState(attrib: String): Option[AnyRef]

  • Description: Removes the specified state attribute from the state.

  • Parameters: attrib - The name of the state attribute to remove.

  • Returns: An Option containing the removed value, if it existed.

contains(attrib: String): Boolean

  • Description: Checks if the specified state attribute exists in the state.

  • Parameters: attrib - The name of the state attribute to check.

  • Returns: true if the attribute exists, false otherwise.

toJson(): String

  • Description: Serializes the state to a JSON string.

  • Returns: A JSON string representation of the state.

saveState(): Unit

  • Description: Saves the current state to the database.

  • Throws: ObsrvException if the state could not be saved.

Usage

The ConnectorState class is used to manage and track the state attributes of a connector instance. It provides methods to access, update, and persist these attributes.

Example

import org.sunbird.obsrv.connector.model.ConnectorState
import org.sunbird.obsrv.job.util.PostgresConnectionConfig

implicit val postgresConfig: PostgresConnectionConfig = // initialize config

val state = new ConnectorState("connectorInstanceId", None)

// Accessing and updating state
state.putState("attribute1", "value1".asInstanceOf[AnyRef])
println(state.getState[String]("attribute1"))
state.saveState()

Last updated