Skip to content

ConnectorState Class

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.

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

  • Description: The unique identifier for the specific instance of the connector.
  • Description: The JSON representation of the state for the connector instance.
  • Description: A mutable map that holds the state attributes for the connector instance.
  • 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

Section titled “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

Section titled “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]

Section titled “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.
  • 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.
  • Description: Serializes the state to a JSON string.
  • Returns: A JSON string representation of the state.
  • Description: Saves the current state to the database.
  • Throws: ObsrvException if the state could not be saved.

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.

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()