Class DefaultMOFactory

java.lang.Object
org.snmp4j.agent.mo.DefaultMOFactory
All Implemented Interfaces:
LinkedMOFactory, MOFactory, MOTableRowFactory
Direct Known Subclasses:
SimMOFactory

public class DefaultMOFactory extends Object implements MOFactory, LinkedMOFactory
The DefaultMOFactory is the default factory for creating ManagedObjects. The default factory creates columnar and scalar objects based on SNMPv2-TC textual conventions with appropriate constraints. Other textual conventions can be added too.
Version:
2.3.0
Author:
Frank Fock
  • Constructor Details

    • DefaultMOFactory

      protected DefaultMOFactory()
  • Method Details

    • getInstance

      public static MOFactory getInstance()
      Returns the factory singleton with default support for SNMPv2-TC textual conventions.
      Returns:
      a MOFactory instance.
    • setInstance

      public static void setInstance(MOFactory factory)
      Sets the singleton factory.
      Parameters:
      factory - a MOFactory instance.
    • addSNMPv2TCs

      public static void addSNMPv2TCs(MOFactory factory)
      Adds support for SNMPv2TC textual conventions to the supplied ManagedObject factory.
      Parameters:
      factory - a MOFactory instance.
    • getTextualConventions

      protected Map<? extends String,? extends Map<String,TextualConvention>> getTextualConventions()
    • addTextualConvention

      public void addTextualConvention(TextualConvention tc)
      Adds a textual convention to this factory which can then be used by the factory to create appropriate value constraints for columnar and scalar managed objects.
      Specified by:
      addTextualConvention in interface MOFactory
      Parameters:
      tc - a TextualConvention instance.
    • removeTextualConvention

      public void removeTextualConvention(TextualConvention tc)
      Description copied from interface: MOFactory
      Removes the supplied textual convention from the supported TCs by this ManagedObject factory.
      Specified by:
      removeTextualConvention in interface MOFactory
      Parameters:
      tc - a TextualConvention instance.
    • getTextualConvention

      public <V extends org.snmp4j.smi.Variable> TextualConvention<V> getTextualConvention(String moduleName, String name)
      Description copied from interface: MOFactory
      Gets the textual convention described by the TC's name and the MIB module name of the MIB module specifying the TC.
      Specified by:
      getTextualConvention in interface MOFactory
      Type Parameters:
      V - the Variable type that is the base type of the returned textual convention.
      Parameters:
      moduleName - the name of the MIB module that defines the TC.
      name - the object name of the TC.
      Returns:
      the TextualConvention that matches the given values, or null if such a TC is not registered with this factory.
    • createColumn

      public <V extends org.snmp4j.smi.Variable> MOColumn<V> createColumn(int columnID, int syntax, MOAccess access)
      Description copied from interface: MOFactory
      Creates a columnar object by supplying column ID, syntax, and maximum access. Use this method for columns not based on a textual convention.
      Specified by:
      createColumn in interface MOFactory
      Type Parameters:
      V - the Variable type of the column to return.
      Parameters:
      columnID - the column ID of the column. The column ID is the last sub-identifier of a column definition. It is NOT the index of the column.
      syntax - the SMI syntax of the column as defined by SMIConstants.
      access - the maximum access supported by this column.
      Returns:
      a MOColumn instance.
    • createColumn

      public <V extends org.snmp4j.smi.Variable> MOColumn<V> createColumn(int columnID, int syntax, MOAccess access, V defaultValue, boolean mutableInService)
      Description copied from interface: MOFactory
      Creates a columnar object by supplying column ID, syntax, and maximum access. Use this method for columns based on the textual convention.
      Specified by:
      createColumn in interface MOFactory
      Type Parameters:
      V - the Variable type of the column to return.
      Parameters:
      columnID - the column ID of the column. The column ID is the last sub-identifier of a column definition. It is NOT the index of the column.
      syntax - the (effective) SMI syntax of the column as defined by SMIConstants.
      access - the maximum access supported by this column.
      defaultValue - the default value defined by the DEFVAL clause for this column.
      mutableInService - if true this object may be changed while it is active (inService), otherwise such an attempt will be rejected with a inconsistentValue error.
      Returns:
      a MOColumn instance.
    • createTableRelation

      public <BaseRow extends MOTableRow, DependentRow extends MOTableRow> MOTableRelation<BaseRow,DependentRow> createTableRelation(MOTable<BaseRow,? extends MOColumn,? extends MOTableModel<BaseRow>> baseTable, MOTable<DependentRow,? extends MOColumn,? extends MOTableModel<DependentRow>> dependentTable)
      Description copied from interface: MOFactory
      Creates a relation between two tables. Related tables share one or more sub-indexes beginning with the first sub-index.
      Specified by:
      createTableRelation in interface MOFactory
      Type Parameters:
      BaseRow - the base row type of the table relation.
      DependentRow - the dependent row type of the table relation.
      Parameters:
      baseTable - the base table.
      dependentTable - the dependent or augmenting table.
      Returns:
      a MOTableRelation instance relating the supplied tables.
    • getSysUpTime

      public SysUpTime getSysUpTime(org.snmp4j.smi.OctetString context)
      Description copied from interface: MOFactory
      Gets a reference to the systems up-time object for the specified context.
      Specified by:
      getSysUpTime in interface MOFactory
      Parameters:
      context - the SNMPv3 context for which the up-time object should be returned. If the context is null, the up-time of the default context is returned.
      Returns:
      a reference to a SysUpTime implementation.
    • createRow

      public MOTableRow createRow(org.snmp4j.smi.OID index, org.snmp4j.smi.Variable[] values) throws UnsupportedOperationException
      Description copied from interface: MOTableRowFactory
      Creates a new MOTableRow row instance and returns it.
      Specified by:
      createRow in interface MOTableRowFactory
      Parameters:
      index - the index OID for the new row.
      values - the values to be contained in the new row.
      Returns:
      the created MOTableRow.
      Throws:
      UnsupportedOperationException - if the specified row cannot be created.
    • createScalar

      public <V extends org.snmp4j.smi.Variable> MOScalar<V> createScalar(org.snmp4j.smi.OID id, MOAccess access, V value)
      Description copied from interface: MOFactory
      Creates a scalar object from a OID, maximum access, and value.
      Specified by:
      createScalar in interface MOFactory
      Type Parameters:
      V - the Variable type of the scalar to return.
      Parameters:
      id - the OID of the scalar (including the .0 suffix).
      access - the maximum access supported by this scalar.
      value - the (initial) value of the scalar.
      Returns:
      a MOScalar instance.
    • createTable

      public <R extends MOTableRow, M extends MOTableModel<R>> MOTable<R,MOColumn,M> createTable(org.snmp4j.smi.OID oid, MOTableIndex indexDef, MOColumn[] columns)
      Description copied from interface: MOFactory
      Creates a MOTable instance for the supplied OID, index definition, and columns with the DefaultMOMutableTableModel as table model.
      Specified by:
      createTable in interface MOFactory
      Type Parameters:
      R - the MOTableRow type of the table to return.
      M - the MOTableModel type of the table to return.
      Parameters:
      oid - the OID of the table entry (thus table OID + ".1").
      indexDef - the index defintion of the table.
      columns - the columns for the new table as an array of MOColumn instances.
      Returns:
      a MOTable instance.
    • createTable

      public <R extends MOTableRow, M extends MOTableModel<R>> MOTable<R,MOColumn,M> createTable(org.snmp4j.smi.OID oid, MOTableIndex indexDef, MOColumn[] columns, M model)
      Description copied from interface: MOFactory
      Creates a MOTable instance for the supplied OID, index definition, columns, and table model.
      Specified by:
      createTable in interface MOFactory
      Type Parameters:
      R - the MOTableRow type of the table to return.
      M - the MOTableModel type of the table to return.
      Parameters:
      oid - the OID of the table entry (thus table OID + ".1").
      indexDef - the index defintion of the table.
      columns - the columns for the new table as an array of MOColumn instances.
      model - the table model to use for the table.
      Returns:
      a MOTable instance.
    • createTableModel

      public <R extends MOTableRow, M extends MOTableModel<? extends R>> M createTableModel(org.snmp4j.smi.OID tableOID, MOTableIndex indexDef, MOColumn[] columns)
      Description copied from interface: MOFactory
      Creates a table model (by default a DefaultMOMutableTableModel).
      Specified by:
      createTableModel in interface MOFactory
      Type Parameters:
      R - the MOTableRow type of the table model to return.
      M - the MOTableModel type of the table model to return.
      Parameters:
      tableOID - the table's OID for which this model is created.
      indexDef - the index definition for the table.
      columns - the columns defined for the table.
      Returns:
      a MOTableModel instance.
    • freeRow

      public void freeRow(MOTableRow row)
      Description copied from interface: MOTableRowFactory
      Frees resources associated with the supplied row which is to be deleted.
      Specified by:
      freeRow in interface MOTableRowFactory
      Parameters:
      row - a MOTableRow that has been created using this factory and is now to be deleted (removed from the associated table).
    • createIndex

      public MOTableIndex createIndex(MOTableSubIndex[] subIndexes, boolean impliedLength)
      Description copied from interface: MOFactory
      Creates an index definition from the supplied sub-index definitions without index validation.
      Specified by:
      createIndex in interface MOFactory
      Parameters:
      subIndexes - an array of MOTableSubIndex instances defining the sub- index values of this index.
      impliedLength - indicates whether the last variable length sub-index value has an implied length or not (default is false).
      Returns:
      MOTableIndex a MOTableIndex instance.
    • createSubIndex

      public MOTableSubIndex createSubIndex(int smiSyntax)
    • createSubIndex

      public MOTableSubIndex createSubIndex(org.snmp4j.smi.OID oid, int smiSyntax)
      Description copied from interface: MOFactory
      Creates a sub-index definition.
      Specified by:
      createSubIndex in interface MOFactory
      Parameters:
      oid - the object identifier of the OBJECT-TYPE that defines this sub-index or null if that information is not available. An non null is required for AgentX shared tables.
      smiSyntax - the SMI syntax as defined by SMIConstants.
      Returns:
      a MOTableSubIndex instance.
    • createSubIndex

      public MOTableSubIndex createSubIndex(int smiSyntax, int minLength, int maxLength)
    • createSubIndex

      public MOTableSubIndex createSubIndex(org.snmp4j.smi.OID oid, int smiSyntax, int minLength, int maxLength)
      Description copied from interface: MOFactory
      Creates a sub-index definition.
      Specified by:
      createSubIndex in interface MOFactory
      Parameters:
      oid - the object identifier of the OBJECT-TYPE that defines this sub-index or null if that information is not available. An non null is required for AgentX shared tables.
      smiSyntax - the SMI syntax as defined by SMIConstants.
      minLength - the minimum length in sub-identifiers (without length sub-id) of the sub-index.
      maxLength - the maximum length in sub-identifiers (without length sub-id) of the sub-index.
      Returns:
      a MOTableSubIndex instance.
    • createIndex

      public MOTableIndex createIndex(MOTableSubIndex[] subIndexes, boolean impliedLength, MOTableIndexValidator validator)
      Description copied from interface: MOFactory
      Creates an index definition from the supplied sub-index definitions with index validation according to the supplied validator.
      Specified by:
      createIndex in interface MOFactory
      Parameters:
      subIndexes - an array of MOTableSubIndex instances defining the sub- index values of this index.
      impliedLength - indicates whether the last variable length sub-index value has an implied length or not (default is false).
      validator - an index validator to check index values.
      Returns:
      MOTableIndex a MOTableIndex instance.
    • createColumn

      public <V extends org.snmp4j.smi.Variable> MOColumn<V> createColumn(int columnID, int syntax, MOAccess access, String tcModuleName, String textualConvention)
      Description copied from interface: MOFactory
      Creates a columnar object by supplying column ID, syntax, and maximum access. Use this method for columns based on the textual convention.
      Specified by:
      createColumn in interface MOFactory
      Type Parameters:
      V - the Variable type of the column to return.
      Parameters:
      columnID - the column ID of the column. The column ID is the last sub-identifier of a column definition. It is NOT the index of the column.
      syntax - the (effective) SMI syntax of the column as defined by SMIConstants.
      access - the maximum access supported by this column.
      tcModuleName - the MIB module name that defines the textual conventions.
      textualConvention - the object name of the textual convention on which this column is based.
      Returns:
      a MOColumn instance.
    • createColumn

      public <V extends org.snmp4j.smi.Variable> MOColumn<V> createColumn(int columnID, int syntax, MOAccess access, V defaultValue, boolean mutableInService, String tcModuleName, String textualConvention)
      Description copied from interface: MOFactory
      Creates a columnar object by supplying column ID, syntax, and maximum access. Use this method for columns based on the textual convention.
      Specified by:
      createColumn in interface MOFactory
      Type Parameters:
      V - the Variable type of the column to return.
      Parameters:
      columnID - the column ID of the column. The column ID is the last sub-identifier of a column definition. It is NOT the index of the column.
      syntax - the (effective) SMI syntax of the column as defined by SMIConstants.
      access - the maximum access supported by this column.
      defaultValue - the default value defined by the DEFVAL clause for this column.
      mutableInService - if true this object may be changed while it is active (inService), otherwise such an attempt will be rejected with a inconsistentValue error.
      tcModuleName - the MIB module name that defines the textual conventions.
      textualConvention - the object name of the textual convention on which this column is based.
      Returns:
      a MOColumn instance.
    • createScalar

      public <V extends org.snmp4j.smi.Variable> MOScalar<V> createScalar(org.snmp4j.smi.OID id, MOAccess access, V value, String tcModuleName, String textualConvention)
      Description copied from interface: MOFactory
      Creates a scalar object from a OID, maximum access, and value.
      Specified by:
      createScalar in interface MOFactory
      Type Parameters:
      V - the Variable type of the scalar to return.
      Parameters:
      id - the OID of the scalar (including the .0 suffix).
      access - the maximum access supported by this scalar.
      value - the (initial) value of the scalar.
      tcModuleName - the MIB module name that defines the textual conventions.
      textualConvention - the object name of the textual convention on which this scalar is based.
      Returns:
      a MOScalar instance.
    • createAccess

      public MOAccess createAccess(int moAccess)
      Description copied from interface: MOFactory
      Creates an MOAccess instance from an access specification constant that is the result of a bitwise OR of any of the constants defined by MOAccess.
      Specified by:
      createAccess in interface MOFactory
      Parameters:
      moAccess - any bitwise OR combined constant from MOAccess.
      Returns:
      a MOAccess instance.
    • setLink

      public void setLink(org.snmp4j.smi.OID oid, Object instrumentationHelperObject)
      Description copied from interface: LinkedMOFactory
      Set a link between the supplied object ID of a managed object class (or a set of managed object classes if the OID refers to a MIB sub-tree) to the given helper object.
      Specified by:
      setLink in interface LinkedMOFactory
      Parameters:
      oid - an OID of a managed object class or sub-tree.
      instrumentationHelperObject - an object that helps the factory or the objects created on its behalf to instrument the those objects.
      See Also:
    • getLink

      public Object getLink(org.snmp4j.smi.OID oid)
      Description copied from interface: LinkedMOFactory
      Gets the link for the given object ID or any sub-OID prefix thereof.
      Specified by:
      getLink in interface LinkedMOFactory
      Parameters:
      oid - the oid of the managed object class (prefix) for which to returned the linked instrumentation helper class.
      Returns:
      an instrumentation helper object (for example an URI) or null if no such link exists.
    • initLinkMap

      protected void initLinkMap()