Class MOMutableColumn<V extends org.snmp4j.smi.Variable>

java.lang.Object
org.snmp4j.agent.mo.MOColumn<V>
org.snmp4j.agent.mo.MOMutableColumn<V>
All Implemented Interfaces:
Comparable<MOColumn<V>>
Direct Known Subclasses:
AutonomousType, DateAndTime, DisplayString, Enumerated, KeyChange, RowPointer, RowStatus, SnmpAdminString, SnmpTagList, SnmpTagValue, StorageType

public class MOMutableColumn<V extends org.snmp4j.smi.Variable> extends MOColumn<V>
The MOMutableColumn class represents mutable columnar SMI objects. It represents all instances of a table's column not only a single instance (cell).

Objects represented by MOMutableColumn can be modified via SNMP, thus MOColumn supports read-only, read-write, and read-create maximum access.

Version:
1.0
Author:
Frank Fock
See Also:
  • Constructor Details

    • MOMutableColumn

      public MOMutableColumn(int columnID, int syntax)
      Creates a read-only column object with the given column and syntax.
      Parameters:
      columnID - the column ID which is ID the last sub-identifier of the corresponding OBJECT-TYPE definition.
      syntax - the syntax of the objects in this column. See SMIConstants for possible values.
    • MOMutableColumn

      public MOMutableColumn(int columnID, int syntax, MOAccess access)
      Creates a column object with the given column, syntax, and maximum access. Since MOColumn only supports read-only columns the only reasonable values for access are 'not-accessible' and 'read-only'. Generally this constructor should not be called directly.
      Parameters:
      columnID - the column ID which is ID the last sub-identifier of the corresponding OBJECT-TYPE definition.
      syntax - the syntax of the objects in this column. See SMIConstants for possible values.
      access - the maximum access of the column.
    • MOMutableColumn

      public MOMutableColumn(int columnID, int syntax, MOAccess access, V defaultValue)
      Creates a column object with the given column, syntax, and maximum access. Since MOColumn only supports read-only columns the only reasonable values for access are 'not-accessible' and 'read-only'. Generally this constructor should not be called directly.
      Parameters:
      columnID - the column ID which is ID the last sub-indentifer of the corresponding OBJECT-TYPE definition.
      syntax - the syntax of the objects in this column. See SMIConstants for possible values.
      access - the maximum access of the column.
      defaultValue - the default value for new rows.
    • MOMutableColumn

      public MOMutableColumn(int columnID, int syntax, MOAccess access, V defaultValue, boolean mutableInService)
      Creates a column object with the given column, syntax, and maximum access. Since MOColumn only supports read-only columns the only reasonable values for access are 'not-accessible' and 'read-only'. Generally this constructor should not be called directly.
      Parameters:
      columnID - the column ID which is ID the last sub-indentifer of the corresponding OBJECT-TYPE definition.
      syntax - the syntax of the objects in this column. See SMIConstants for possible values.
      access - the maximum access of the column.
      defaultValue - the default value for new rows.
      mutableInService - if true this column accepts value changes through SNMP (via prepare(org.snmp4j.agent.request.SubRequest, MOTableRow, MOTableRow, int) and commit(org.snmp4j.agent.request.SubRequest, MOTableRow, MOTableRow, int) while the rows RowStatus object is in state RowStatus.active. Otherwise, such an operation will result in a PDU.inconsistentValue error.
  • Method Details

    • addMOValueValidationListener

      public void addMOValueValidationListener(MOValueValidationListener validator)
    • removeMOValueValidationListener

      public void removeMOValueValidationListener(MOValueValidationListener validator)
    • validate

      public int validate(V newValue, V oldValue, org.snmp4j.smi.OID instanceOID)
      Validate the new value for a mutable column based on old value and (new in v3.7.0) the instance OID.
      Parameters:
      newValue - the new value to be set.
      oldValue - the existing value.
      instanceOID - the instance OID of the table cell to be modified.
      Returns:
      SnmpConstants.SNMP_ERROR_SUCCESS if the change is OK, otherwise a SNMP error status.
      Since:
      3.7.0
    • validate

      @Deprecated public int validate(V newValue, V oldValue)
      Deprecated.
      Validate the new value for a mutable column based on old value and (new in v3.7.0) the instance OID.
      Parameters:
      newValue - the new value to be set.
      oldValue - the existing value.
      Returns:
      SnmpConstants.SNMP_ERROR_SUCCESS if the change is OK, otherwise a SNMP error status.
    • validateSetRequest

      protected boolean validateSetRequest(SubRequest<?> subRequest, MOTableRow row, int column)
    • prepare

      public void prepare(SubRequest<?> subRequest, MOTableRow row, MOTableRow changeSet, int column)
    • commit

      public void commit(SubRequest<?> subRequest, MOTableRow row, MOTableRow changeSet, int column)
    • undo

      public void undo(SubRequest<?> subRequest, MOTableRow row, int column)
    • cleanup

      public void cleanup(SubRequest<?> subRequest, MOTableRow row, int column)
    • setDefaultValue

      public void setDefaultValue(V defaultValue)
    • setMutableInService

      public void setMutableInService(boolean mutableInService)
    • getDefaultValue

      public V getDefaultValue()
    • isMutableInService

      public boolean isMutableInService()
    • isMandatory

      public boolean isMandatory()
      Returns true if this column must be specified in a SET request which creates a row.
      Returns:
      true if this row has a maximum access of READ-CREATE and has a null default value, false otherwise.
    • setMandatory

      public void setMandatory(boolean mandatory)
      Sets a flag that determines if this column must be specified in a SET request which creates a row. The default is true.
      Parameters:
      mandatory - if true and a row has a maximum access of READ-CREATE and has a null default value, then it must be provided in order to activate the row.
      Since:
      1.3.2
    • toString

      public String toString()
      Overrides:
      toString in class MOColumn<V extends org.snmp4j.smi.Variable>